我正在使用 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()
制作元组而不是字典。