Встречается на собеседованиях • сегодня

Как из Телеграм бота обращаться к базе данных

Для работы с БД из 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`
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы