python - SQLite的Python身份验证问题

标签 python sql sqlite authentication twisted

我在python中有一个包含2个字段的数据库:用户名和passHash。 DB没问题,我已经检查过并且所有参数都正确。然后,我需要一个身份验证系统,该系统将在每行中查找用户名,如果找到,则在第二字段中查找密码,如果与用户提供的密码不同,则返回“密码错误”。但问题是:我该怎么做,以便系统将遍历所有行,完成后将返回“用户不存在”。因为现在返回未在搜索到的第一行中找到用户吓坏了,但是我们去吧D:

附言使用扭曲和sqlite3

    def authenticate(self, username, password):
    playerDB.execute('''SELECT * FROM playerData''')
    for row in playerDB:
        if row[0] == username:
            if row[1] == password:
                if username in ADMIN_NAMES:
                    self.server.sendOutput("Admin authentication: %s" % username)
                    logging.info("Admin authentication: %s" % username)
                return "Authenticated"
            else:
                logging.info("Authentication Fail: %s" % username)
                return "Password doesn't matches username."

        else:
            return "This player doesn't exists."

最佳答案

只需将第二个else子句移到for循环中,而不是外部的if语句中即可。如果循环结束而没有错误,中断或返回,则将执行该循环。

关于python - SQLite的Python身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6849546/

相关文章:

Python,在二维列表中寻找邻居

Python:如何检查字符串的编码并在不同的地方插入空格?

python - Django - 从 url <pk> 填充 createview 输入

java - Oracle 数据库列数据显示额外的十进制值

sql - STIntersection 结果为 STIntersects = 0

python - wxPython:我应该如何在 Controller 中组织每个小部件数据?

sql - 带递归 Postgres 查询的约束

python - SQLite3 选择过去 24 小时内插入到 Flask 中的条目

sql - 为特定列设置WHERE子句的默认值

python - django.db.utils.IntegrityError : The row in table 'main_page_projects' with primary key '1' has an invalid foreign key 错误