我是Kivy的新手,我正在创建一个从数据库中检索信息的应用程序。我尝试连接,只要我运行代码,它返回验证失败。下面是代码。
<loginView>:
status:result
Label:
text:"Yousafe Systems"
pos:600,600
font_size:40
Label:
text:"Enter code"
pos:450,400
TextInput:
multiline:False
pos:600,425
size:200,45
font_size:20
id:code
Button:
text:"Login"
size:100,50
pos:600,325
on_press:root.validate(code.text)
Label:
text:""
pos:600,100
id:result
____________________________ screen.kv __________________________________________
{{1}}
更新:我很抱歉缩进错误。这实际上是我第一次使用SO。请在下面找到脚本文件夹的链接。 https://drive.google.com/drive/folders/1OnWFFtkT4gg_qg-f2uA-G2Nwn5SbRy80?usp=sharing
答案 0 :(得分:0)
请求不正确,因为您在数据库中查找等于“代码”的CODE,而不是变量代码的值,另一方面,将结果与代码进行比较将始终为false,因为结果是一个元组列表,当它与一个字符串进行比较时,它永远不会成立,如果代码存在于数据库中,那么结果将是一个非空列表,我们用它来检查。
...
class loginView(Widget):
status=ObjectProperty(None)
def validate(self,code):
with sqlite3.connect("company.db") as db:
cursor = db.cursor()
cursor.execute("SELECT * FROM userinfo WHERE CODE = ?", (code,))
result = cursor.fetchall()
if result:
print("welcome")
self.clear_widgets()
else:
self.status.text="Verification failed"
...