0

我正在使用 python 创建一个网络服务器+网站,我目前正在研究如何检查您的登录值是否正确。以前进行测试时,我使用了以下代码:

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

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

4

1 回答 1

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

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

In [3]: dict(zip(users, pws))
Out[3]: {'user1': 'password', 'user2': '12354'}
于 2013-07-28T19:14:51.023 回答