Как разделить данные ввода пользователей бота телеграм?

Я пишу бота в телеграмме, в боте есть кнопка, при нажатии на нее ввод пользователя обрабатывается через register_next_step_handler(), тут появляется проблема, например: пользователь1 нажимает на эту кнопку и вводит значение, значение заносится в переменную и там хранится, но если зайдет другой пользователь, нажмет на эту кнопку, введет значение, то переменная обновится на ввод пользователь2, мне надо как то разделить пользователей(их может быть не ограниченное кол-во), чтобы значение ввода присваивалось к пользователям, как это можно сделать?
  • Вопрос задан
  • 1101 просмотр
Решения вопроса 1
shabelski89
@shabelski89
engineer
можно использовать sqlite , чтобы потом по юзер_ид вытаскивать значения
import sqlite3 as db
from sqlite3 import Error
import time


# handler по команде старт передаст нужные поля из объекта message в функцию добавления юзера в дб
@bot.message_handler(commands=['start'])
def start(message):
    tupp = (message.from_user.id, message.from_user.username, message.from_user.first_name, message.from_user.last_name, time.ctime())
    send_user_info(tupp)


# один раз запускаешь для создания БД и таблицы в ней
with db.connect('bot_db') as connection:
    cursor = connection.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS  USERS (user_id INTEGER NOT NULL PRIMARY KEY, first_name TEXT, last_name TEXT, username TEXT)''')


# вызываемая функция 
def send_user_info(tup):
    connection = db.connect('bot_db'))
    cursor = connection.cursor()
    try:
        cursor.execute("INSERT INTO USERS (user_id, username, first_name, last_name, reg_date) VALUES(?,?,?,?,?)", tup)
    except Error:
        pass
    connection.commit()
    connection.close()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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