@hollz69

Как сохранить в db ниже написанный текст в pyTelegrambotAPI?

Хочу сделать чтобы в бд сохранись айди, имя и отзыв пользователя. Айди и имя сделал, сейчас сохраняется "написать текст", а мне нужно нижележащий.

import telebot
import sqlite3
from telebot import types

bot = telebot.TeleBot('token')


@bot.message_handler(commands=['start'])
def start(message):
    connect = sqlite3.connect('users.db')
    cursor = connect.cursor()
    cursor.execute("""CREATE TABLE IF NOT EXISTS login_id(
    id INTEGER)
    """)
    connect.commit()
    cursor.execute("""CREATE TABLE IF NOT EXISTS usernames(
        username TEXT)
        """)
    cursor.execute("""CREATE TABLE IF NOT EXISTS users_message(
            text TEXT)
            """)
    connect.commit()

    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton(" Меню")
    btn2 = types.KeyboardButton("❓ Задать вопрос")
    btn3 = types.KeyboardButton("Отзывы")
    markup.add(btn1, btn2, btn3)
    bot.send_message(message.chat.id,
                     text="Привет, {0.first_name}! Задай вопрос или познакомьься с нашим вкуснейшим меню".format(
                         message.from_user), reply_markup=markup)


@bot.message_handler(content_types=['text'])
def func(message):
    if (message.text == " Меню"):
        bot.send_message(message.chat.id, text="Вот наше потрясающее меню!")
        photo = open('menu.jpg', 'rb')
        bot.send_photo(message.chat.id, photo)
    elif (message.text == "❓ Задать вопрос"):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton("Какой адрес?")
        btn2 = types.KeyboardButton("Как быстро приходит доставка?")
        btn3 = types.KeyboardButton("Вкусная ли у нас еда?")
        back = types.KeyboardButton("Вернуться в главное меню")
        markup.add(btn1, btn2, btn3, back)
        bot.send_message(message.chat.id, text="Привет, вот ответы на самые задаваемые вопросы:", reply_markup=markup)

    elif (message.text == "Какой адрес?"):
        bot.send_message(message.chat.id, "Кутузовская 17, Приходите будем очень рады")
    elif (message.text == "Отзывы"):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton(" Написать отзыв")
        btn2 = types.KeyboardButton(" Посмотреть отзывы")
        markup.add(btn1, btn2)

    elif (message.text == "Вкусная ли у нас еда?"):
        bot.send_message(message.chat.id, "Ответ сотен наших клиентов был - определенно да")

    elif message.text == "Как быстро приходит доставка?":
        bot.send_message(message.chat.id,
                         text="Доставка приходит по разному, надо знать как рядом вы живете с нашим магазином)")

    elif (message.text == "Вернуться в главное меню"):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        button1 = types.KeyboardButton(" Меню")
        button2 = types.KeyboardButton("❓ Задать вопрос")
        btn3 = types.KeyboardButton("Отзывы")
        markup.add(button1, button2, btn3)
        bot.send_message(message.chat.id, text="Вы вернулись в главное меню", reply_markup=markup)
    elif (message.text == "Написать отзыв"):
        bot.send_message(message.from_user.id, 'Привет! Ваше имя добавленно в базу данных!')
        connect = sqlite3.connect('users.db')
        cursor = connect.cursor()
        user_id = [message.chat.id]
        username = [message.from_user.username]
        users_text = [message.text]
        cursor.execute("INSERT INTO login_id VALUES(?); ", user_id)
        cursor.execute("INSERT INTO usernames VALUES(?); ", username)
        cursor.execute("INSERT INTO users_message VALUES(?); ", users_text)
        connect.commit()


bot.polling(none_stop=True)
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
shabelski89
@shabelski89
engineer
Всё правильно, что записали в переменную, то и сохранилось:
users_text = [message.text]
Вам нужно использовать register_next_step_handler чтобы задать вопрос и потом получить ответ и обработать его.

пример register_next_step_handler
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
25 нояб. 2024, в 18:39
30000 руб./за проект
25 нояб. 2024, в 18:35
30000 руб./за проект
25 нояб. 2024, в 18:33
10000 руб./за проект