如何选择值来检查帐户和密码?

时间:2015-07-08 04:21:16

标签: python sqlite pyqt

我想创建一个登录窗口,此窗口中有两个QlineEdits。我们必须在其中输入正确的帐户和密码,然后登录成功 member.db中有两组帐号和密码 第一:帐户:aaa,密码:000
第二:帐号:bbb,密码:111

以下是我的代码的一部分:Howerver当我选择帐户数据时,它无法捕获该值。

 def buttonClicked(self):        
        model = QSqlQueryModel()
        a=model.setQuery("SELECT Password FROM member WHERE Account = values(\'{0}')".format(self.AccountEdit))
        if a==self.PasswordEdit.text():
            QtGui.QMessageBox.information(self, 'message',"Congratulations !!!")
        else:
            QtGui.QMessageBox.warning(self, 'message',"Error !!!")

我认为错误在a=model.setQuery("SELECT Password FROM member WHERE Account = values(\'{0}')".format(self.AccountEdit))此代码中。 因为我尝试print(a)return None

1 个答案:

答案 0 :(得分:0)

这不是有效的SQL;你应该只使用WHERE Account = 'name'

此外,为防止SQL injection攻击,您应该使用参数;这只能通过使用单独的QSqlQuery对象来实现:

query = QSqlQuery()
query.prepare("SELECT Password FROM member WHERE Account = ?")
query.bindValue(0, self.AccountEdit)
query.exec_()
model = QSqlQueryModel()
model.setQuery(query)