Встречается на собеседованиях • сегодня
Как из Телеграм бота обращаться к базе данных
Для работы с БД из Telegram бота на Python можно использовать библиотеки sqlite3 (встроенная) или SQLAlchemy (ORM). Пример с sqlite3:
python
import sqlite3
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
# Подключение к БД
def get_db_connection():
conn = sqlite3.connect('bot_database.db')
conn.row_factory = sqlite3.Row
return conn
# Обработчик команды /start
def start(update: Update, context: CallbackContext):
conn = get_db_connection()
cursor = conn.cursor()
# Создание таблицы если её нет
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT)')
# Добавление пользователя
user_id = update.effective_user.id
username = update.effective_user.username
cursor.execute('INSERT OR IGNORE INTO users VALUES (?, ?)', (user_id, username))
conn.commit()
conn.close()
update.message.reply_text('Вы зарегистрированы!')
Инициализация бота
updater = Updater("YOUR_TOKEN")
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()
text
**Лучшие практики:**
1. Используйте контекстные менеджеры (`with`) для работы с соединениями
2. Выносите логику работы с БД в отдельные функции/классы
3. Обрабатывайте исключения (sqlite3.Error)
4. Для продакшена рассмотрите PostgreSQL через `psycopg2` или асинхронные решения типа `asyncpg`
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы