@RulesOfNature

Как добавлять кнопки в клавиатуру в зависимости от данных из базы данных в Telebot?

Здравствуйте. Хочу реализовать удаление данных с бд Sqlite при помощи Inline, либо Reply кнопок. Как это можно реализовать?
  • Вопрос задан
  • 387 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
Предположим Вы знаете как из sqlite полчать данные, обычно при fetchall() получаем список кортежей, например такой: some_data_from_sqlite = [('one',), ('two',), ('ten',)] .
а уж клавиатуру сделать проще простого:
import telebot
from telebot import types


API_TOKEN = ""
bot = telebot.TeleBot(API_TOKEN)


@bot.message_handler(commands=['start'])
def start(message):
    some_data_from_sqlite = [('one',), ('two',), ('ten',)]  # список кортежей из БД
    buttons_dict = {i: x[0] for i, x in enumerate(some_data_from_sqlite)}
    keyboard = types.InlineKeyboardMarkup()
    back_button = types.InlineKeyboardButton(text="Back", callback_data="MainMenu")
    button_list = [types.InlineKeyboardButton(text=x, callback_data=x) for x in buttons_dict.values()] # callback дата понадобится при обработке нажатий на кнопку, но это уже совсем другая история :)
    keyboard.add(*button_list, back_button)
    bot.send_message(chat_id=message.chat.id, text=message.text, reply_markup=keyboard)


if __name__ == "__main__":
    try:
        bot.polling(none_stop=True)
    except Exception as e:
        print(e)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект