我现在把这个程序作为我计算机课程的一部分。在我的程序中,我创建了一个保存用户信息的数据库'Records.db'
。该表称为Users,布局为;Id INTEGER PRIMARY KEY, Username STRING, Password STRING, First_Name STRING, Surname STRING
。
我正在尝试为用户编写登录代码。目前我的代码如下:
Login for users
import sys
import sqlite3 as lite
con = lite.connect('Records.db')
Login = False
while Login is False:
u_name = input("Enter your username: ")
p_word = input("Enter your password: ")
with con:
cur = con.cursor()
cur.execute("SELECT Password AND First_Name AND Surname FROM Users WHERE Username='"+u_name+"'")
if Password == p_word:
print("Welcome",First_Name,Surname+"!")
Login = True
else:
print("The Username/Password is incorrect. Please check your input and try again!")
我一直收到一个错误,说变量密码没有定义。但是我不知道如何使用sqlite检索它。我以为cur.execute("SELECT Password AND First_Name AND Surname FROM Users WHERE Username='"+u_name+"'")
会返回要打印/使用的密码等请尽快帮助!
这里至少有三件事不对。我不会给你答案,因为这是家庭作业,但希望这会有帮助。你知道吗
首先,您的SQL语法不正确。你不需要使用和这样:你用逗号分隔列。你知道吗
其次,
execute
实际上并不获取结果。你需要为此做cur.fetchone()
。你知道吗第三,你没有理解变量是如何工作的。即使得到结果,它也不会自动分配给名为Password的局部变量。您需要获取游标返回的数据并将其赋给该变量。你知道吗
相关问题 更多 >
编程相关推荐