Как получить запись из таблицы SQLite с данными пользователя (login, password)
У меня есть таблица с данными пользователя (user_id PRIMARY KEY,login TEXT, password TEXT)
Как правильно записать функцию которая будет сравнивать введённый логин из телеграмм бота на aiogram с записью в таблице?
database.py
import sqlite3
from aiogram import types
def sql_start():
global conn, cur
conn = sqlite3.connect('users.db')
cur = conn.cursor()
if conn:
print('Подключение в базам данных...')
print('База данных подключена')
else:
print('Не удалось подключится к базе данных')
cur.execute("""CREATE TABLE IF NOT EXISTS users(
user_id INTEGER PRIMARY KEY,
login TEXT NOT NULL,
password TEXT NOT NULL
);
""")
conn.commit()
async def add_user_to_db(user_id, login, password):
insert_query = f"INSERT INTO users (user_id, login, password) VALUES (?, ?, ?)"
record_to_insert = (user_id, login, password)
cur.execute(insert_query, record_to_insert)
conn.commit()
async def user_exists(user_id):
result = conn.execute(f'SELECT * FROM users WHERE user_id = {user_id}').fetchall()
return bool(len(result))
async def user_check_login(login):
info = cur.execute(f'SELECT * FROM users WHERE login = {login}').fetchone()
print(len(info))
if len(info) == 0:
return False
else:
return True
user.py
###### Описание хендлеров входа #######
@dp.message_handler(Text(equals='Вход'), state=None)
async def enter(message: types.Message):
await message.answer('Введите логин')
login = database.user_check_login
if database.user_check == login:
await message.answer('Логин принят')
await message.answer('Введите пароль')
else:
await message.answer ('Введён неверный логин')
return enter
Источник: Stack Overflow на русском