Я пытаюсь создать приложение форума, используя Python. Моя функция входа в систему:
uname = username_const.get()
pword = password_const.get()
# this will delete the entry after login button is pressed
username.delete(0, END)
password.delete(0, END)
conn = sqlite3.connect('users_info.db')
c = conn.cursor()
c.execute("SELECT username, password FROM users")
account_list = c.fetchall()
flag = True
for account in account_list:
if uname == account[0] and pword == account[1]:
raise_frame(exsisting_account_frame) # allow the user to log into his account
flag = False
elif uname == account[0]:
password_not_recognised() #presents an error message
flag = False
if flag:
user_not_found() #presents an error message
Моя функция регистрации (не разрешает уже существующее / занятое имя пользователя):
new_uname = newUsername_const.get()
conn = sqlite3.connect('users_info.db')
c = conn.cursor()
c.execute("SELECT username FROM users")
usernames = c.fetchall()
for user_name in usernames:
if user_name == new_uname:
username_already_exists()
flag = False
break
else:
flag = True
if flag:
new_fname = name_const.get()
new_mail = mail_const.get()
new_uname = newUsername_const.get()
new_pword = newPassword_const.get()
FullName.delete(0, END)
mailAccount.delete(0, END)
newUsername.delete(0, END)
newPassword.delete(0, END)
conn = sqlite3.connect('users_info.db')
c = conn.cursor()
c.execute("INSERT INTO users (fullname, mail, username, password) VALUES(?,?,?,?)",
(new_fname, new_mail, new_uname, new_pword))
raise_frame(new_account_frame)
conn.commit()
Функция входа работает, но регистрация функциональность по-прежнему позволяет использовать имя пользователя. Как я могу это исправить?