Делаю простенький скрипт на python для авторизации пользователей.
Вот код:
import sqlite3
import sys
isuserlogin = False
with sqlite3.connect("users.db") as db:
cursor = db.cursor()
cursor.execute("""CREATE TABLE IF NOT EXISTS user(
login TEXT,
password TEXT
)""")
db.commit()
def start_register():
new_login = str(input('Придумайте новый логин: '))
new_pass = str(input('Придумайте новый пароль: '))
cursor.execute(f"SELECT login, password FROM user WHERE login = '{new_login}' AND password = '{new_pass}'")
if cursor.fetchone() is None:
cursor.execute(f"INSERT INTO user VALUES (?,?)", (new_login, new_pass))
cursor.commit()
print('Вы успешно зарегистрированы: ')
start_login()
else:
print('Такая запись уже существует')
for i in cursor.execute('SELECT * FROM users'):
print(i)
values = [
(new_login, new_pass, now_time)
]
cursor.executemany("INSERT INTO user(login, password, date_reg) values(?, ?, ?)", values)
def start_login():
login_input = str(input('Введите логин: '))
password_input = str(input('Введите ваш пароль: '))
a = cursor.execute(f"SELECT login, password FROM user WHERE login = '{login_input}' AND password = '{password_input}'")
db.commit()
if not cursor.fetchone():
doregister = str(input('Пользователь с таким логином не найден. Провести регистрацию нового пользователя? [Y/N] '))
if doregister == 'y' or 'Y' or 'д' or 'Д':
start_register()
else:
if doregister == 'N' or 'n' or 'н' or 'Н':
start_login()
else:
print('Команда не распознана!')
else:
print('Welcome')
global isuserlogin
isuserlogin = True
if isuserlogin == False:
start_login()
if isuserlogin == True:
print('OK!')
При попытке выполнения вылезает такая ошибка в консоли.
Предпосылок вроде нету, таблицы две и запросов два. Что не так?