Python33 - 带有身份验证的SQLite3帐户

时间:2013-07-28 18:50:44

标签: python list authentication dictionary sqlite

我正在使用python创建一个webserver +网站,我目前正在弄清楚如何检查你的登录值是否正确。以前用于测试我使用以下代码:

def checkUser(username, password): #<-- input values go in here
        site_usernames = ["admin", "username1", "username2"]
        site_passwords = ["admin", "password1", "password2"]
        site_couples = {"admin":"admin", "username1":"password1", "username2":"password2"}
        not_counter = 0
        while True:
            if username in site_usernames:
                if password in site_passwords:
                    for key in site_couples:
                        if (username == key) and (password == site_couples[key]):
                            print("User %s logged in!" % username)
                            return True
                        else:
                            not_counter = not_counter + 1
                            if not_counter > 10:
                                print("User failed login with accountname: %s" % username)
                                return False
                                break
                            else:
                                continue
                else:
                    pass_exists = False
                    break
            else:
                user_exists = False
                break

据我所知,您不能将数据库中的两列作为字典返回。我设法将一列作为列表,我打算使用它。

所以在我的新代码中,我有以下内容:

  • 数据库中的用户名列表

  • 数据库中编码密码的列表

我想制作一个验证功能,检查是否:

  • 如果数据库中存在用户名:
  • 如果数据库中存在密码:
  • 如果输入的用户名:密码对存在于数据库中的所有现有用户名:密码值中:
  • 如果所有检查都成功,则返回True

问题在于我发现管理这样的事情非常困难。正如您在我的示例代码中看到的,我有两个列表和一个dict,都是预定义的。我想动态创建这些东西,而我唯一需要帮助的是如何创建用户名:密码字典情侣。我怎么做这样的事情? zip()制作元组而不是字典。

1 个答案:

答案 0 :(得分:1)

In [1]: users = ["user1", "user2"]

In [2]: pws = ["password", "12354"]

In [3]: dict(zip(users, pws))
Out[3]: {'user1': 'password', 'user2': '12354'}