如何将sqlite3数据库连接到kivy?

时间:2018-06-05 17:22:34

标签: python sqlite kivy

我是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

1 个答案:

答案 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" 

...