Задать вопрос
@paxa-1331

Как получить имя для inline кнопки из базы данных sqlite?

Есть база данных,через нее я обновляю информацию.

Но если я изменяю текст в базе данных, то на кнопке он отображается только после перезапуска самого бота.
Как сделать чтобы название обновлялось автоматически, без перезапуска бота?

c.execute(f"SELECT * FROM kbNEWWW") 
items = c.fetchone()
red5 = types.ReplyKeyboardMarkup(resize_keyboard=True)
red5.add(
    types.KeyboardButton(f'{items}')
)
db.commit() #обновить бд

@dp.message_handler(content_types=['text'], text='Тест3')
async def handfler(message: types.Message, state: FSMContext):
    db.commit() #обновить бд  
    await message.answer(' Добро пожаловать тест', reply_markup=red5)  

db.commit() #обновить бд


Что я делаю не так? почему не обновляется текст только в кнопках, если я беру текст из БД для встраивания в обычное текстовое смс от бота , то все нормально работает.
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Простой 7 комментариев
Решения вопроса 1
@paxa-1331 Автор вопроса
реализовалось

def get_keyboard_data():
    db.commit() #обновить бд 
    c.execute("SELECT VK, * FROM vkINST" )
    db.commit() #обновить бд 
    kb = types.ReplyKeyboardMarkup(resize_keyboard=True)
    kb.add((f'{c.fetchone()[1]}'))
    return kb  

db.commit() #обновить бд  
@dp.message_handler(content_types=['text'], text='Тест9')
async def handfler(message: types.Message):
    db.commit() #обновить бд  
    await message.answer(' Добро пожаловать тест3', reply_markup=get_keyboard_data())  
 #   await message.answer(' Добро пожаловать тест3 низ', reply_markup=sta7)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы