Я создал базу данных с именем finance.db, и она содержит таблицу с именем «test». Таблица принимает 5 параметров, включая «пользователь» и «пароль». Пользователь уже вставлен в таблицу.
Я бы хотел, чтобы пользователь мог войти в систему, указав свое имя пользователя и пароль и сопоставив их с таблицей базы данных «test». Если таблица содержит правильное имя пользователя и пароль, она позволяет пользователю войти в систему.
Вот как я могу представить, что это будет работать:
import sqlite3
user_name = input('Enter username: ')
user_password = input('Enter password:')
def login_details(username, password):
connection = sqlite3.connect('finance.db')
cursor = connection.cursor()
cursor.execute('SELECT * FROM test')
check = cursor.fetchall()
for i in check:
if username and password in check:
print('works')
else:
print('not in db')
login_details(username=user_name, password=user_password)
К сожалению, всегда возвращается «not in db» , даже если введены правильные данные. Я не уверен, что мне не хватает, но я подозреваю, что мое утверждение if просто неверно, но это не приводит к синтаксису или другой ошибке.
ОБНОВЛЕНИЕ:
Я решил проблема путем извлечения информации, которая мне нужна, из кортежа и последующего сохранения ее значения в переменной. Вот что я изменил:
for i in check:
user_name_input = i[1]
user_pass_input = i[2]
if user_name_input != username and user_pass_input != password:
print('not in db')
else:
print('in db')