Встречается на 1% собеседований по Python
Как из Телеграм бота обращаться к базе данных
Для работы с БД из 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
интервью вопросы и ответы