sqlite 用于切换帧的SQL登录函数不起作用

j2cgzkjk  于 2023-02-19  发布在  SQLite
关注(0)|答案(1)|浏览(101)

我的登录功能不接受输入正确的用户名和密码。
因此,我尝试使用sqlite3创建一个图书管理系统,该系统在Tkinter窗口中有两个框架f1和f2。f1包含一个登录函数,如果输入了数据库中正确的用户名和密码,它将使用tkinter移动到另一个框架。但是,它总是会遇到“else”条件,并指出用户名和密码不正确。

def Login():
    Connect()
    Username=StringVar()
    Password=StringVar()
    cursor.execute("SELECT * FROM Users WHERE username=? and password=?",(Username.get(), Password.get(),))
    connection.commit()
    users = cursor.fetchall()
    print(users)
    connection.commit()
    if users is True:
        f2.pack(fill='both', expand=1)
        f1.pack_forget()
    else:
        label1=Label(root,text="Wrong username or password, please try again")
        label1.place(x=350,y=300)
        e2.delete(0, END)

由于某种原因,我似乎没有从数据库中用SELECT命令返回任何东西。如果能给我一些建议,我将不胜感激!

z4bn682m

z4bn682m1#

在创建了Username.get()Password.get()变量之后大约1毫秒,我们调用了这两个变量,它们的初始值是空字符串,因为我们没有给予它们一个显式的默认值。
假设你的程序使用Entry小部件,你应该调用Entry小部件的get方法,而不是在函数中创建变量。或者,无论什么代码调用Login,都必须传入用户名和密码。你的问题不清楚你期望这些值来自哪里。

相关问题