@wantoozed

Как вывести данные из базы данных в сообщение бота телеграм (aiogram)?

У меня есть база данных, в которой хранится информация об айди пользователя
6508c6b2011c3534339680.png
Как сделать так чтобы бот вывел данные из базы в сообщение? Я видел вопрос который был более года назад, сделал всё под себя и не получилось. Буду очень благодарен если поможете так как я изучаю программирование
@dp.message_handler(text = '‍ Профиль')
async def profile(message: types.Message):
    await message.answer('Профиль ваш айди пользователя:',(данные из базы),reply_markup=mainkb)
  • Вопрос задан
  • 603 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Bahrom2023
Для того чтобы бот мог выводить данные из базы данных, вам нужно будет использовать библиотеку, которая позволяет Python взаимодействовать с вашей базой данных. Например, для SQLite вы можете использовать встроенную библиотеку sqlite3, для PostgreSQL - psycopg2 или SQLAlchemy для более общего подхода.

В качестве примера, давайте предположим, что у вас есть база данных SQLite с таблицей users, и вы хотите отправить пользователю список всех пользователей. Ваш код может выглядеть примерно так:
import sqlite3

@dp.message_handler(commands=['get_users'])
async def get_users(message: types.Message):
    # Создаем подключение к базе данных
    conn = sqlite3.connect('my_database.db')
    cursor = conn.cursor()

    # Выполняем запрос к базе данных
    cursor.execute("SELECT * FROM users")
    users = cursor.fetchall()

    # Форматируем результат в виде строки
    users_str = "\n".join([str(user) for user in users])

    # Отправляем результат пользователю
    await message.answer(users_str)

    # Закрываем подключение к базе данных
    conn.close()

Этот код создает обработчик для команды /get_users, который открывает подключение к базе данных, выполняет SQL-запрос для получения всех пользователей, форматирует результат в виде строки и отправляет эту строку пользователю.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы