Как сделать запрос к Базе Данных из Телеграм бота по кнопке
подскажите как правильно оформить Телеграм бот, который по запросу пользователя выдает информацию из БД. Логика бота следующая: пользователю при команде /start для выбора критерия поиска отображается три кнопки (Поиск по ФИО руководителя, Поиск по адресу ЮЛ и Поиск по ИНН). После нажатия на кнопку Выходит команда, допустим "Введите ФИО" - данный скрипт реализован. Далее бот должен ожидать ответа от пользователя, и после ввода атрибута производится поиск в БД и выдается ответ. Полный скрипт прилагаю:
import telebot
from telebot import types
import psycopg2
from psycopg2 import OperationalError
bot = telebot.TeleBot('токен')
def create_connection(db_name, db_user, db_password, db_host, db_port):
connection = None
try:
connection = psycopg2.connect(
database=db_name,
user=db_user,
password=db_password,
host=db_host,
port=db_port,
)
print("Connection to PostgreSQL DB successful")
except OperationalError as e:
print(f"The error '{e}' occurred")
return connection
connection = create_connection(
"postgres", "postgres", "postgres", "localhost", "5432"
)
@bot.message_handler(commands=['start'])
def button(message):
markup = types.InlineKeyboardMarkup(row_width=3)
item = types.InlineKeyboardButton('Поиск по ИНН', callback_data='INN')
item2 = types.InlineKeyboardButton('Поиск по ФИО', callback_data='FIO')
item3 = types.InlineKeyboardButton('Поиск по адресу', callback_data='address')
markup.add(item, item2, item3)
bot.send_message(message.chat.id, 'Бот готов к работе', reply_markup=markup)
@bot.callback_query_handler(func=lambda call:True)
def callback(call):
if call.message:
if call.data == 'INN':
bot.send_message(call.message.chat.id, 'Введите ИНН')
elif call.data == 'FIO':
bot.send_message(call.message.chat.id, 'Введите ФИО руководителя')
elif call.data == 'address':
bot.send_message(call.message.chat.id, 'Введите адрес регистрации ЮЛ')
bot.polling()