Python:创建登录系统

标签 python authentication

<分区>

我想用 python 创建一个登录系统。

这是我正在做的一个小项目,以便我可以掌握 python 并最终将其发送到我正在创建的 webpage

截至目前我有这个:

user = raw_input('Create Username: ')
password = raw_input('Create Password: ')
store_user =[roger, Jon]
store_pass =[tennis, soccer]

store_user.append(user)
store_pass.append(password)

if user in store_user:
    print "That user already exsist"

while 1 == 1:
    userguess=""
    passwordguess=""
    key=""
    while (userguess != user) or (passwordguess != password):
        userguess = raw_input('User Name: ')
        passwordguess = raw_input('Password:')

    print "Welcome,",user, ". Type Lock to Lock or Type Create to create another user."
    print store_user
    print store_pass

    while key != "lock":
        key = raw_input("")

这会让您创建一个用户名和密码,并将它们存储在一个列表中。 我加入了 if 语句来检查列表以查看用户是否已经存在(但我认为这行不通)

我只是想要一些关于如何让整个事情循环的指导:例如,你选择是否登录,登录后你可以选择创建另一个,它会检查以查看如果该用户已经存在。

非常感谢!

最佳答案

让我们一步步来:

首先,检查用户是否存在总是会告诉您它存在,因为您正在添加用户,然后检查它是否存在。所以你写的 if 语句是可以的,但是把它放在 store_user.append 之前:

if user in store_user:
    print "That user already exsist"
else:
    store_user.append(user)
    store_pass.append(password)

其次,您为 while 1 == 1: 编写的条件没有用(但仍然正确),您可以执行 while 1 (因为 1 的计算结果为 True)甚至更好 while True: 简单。

第三,用户名/密码检查只检查最后一个用户和密码。如果您在 store_user 中使用了 userguess 并使用了相同的密码,您将不会得到预期的结果。所以,你需要使用字典而不是列表。通过这些,您可以将分配给。在您的情况下,用户需要密码,因此您将拥有:

store = dict()
# the code to get the user/password
store[user] = password # you "save" the value password for the key user

# then to check:
while not (userguess in store and store[userguess] == passwordguess):
   # try again

阅读更多关于字典的信息。

然后,您可以将每个“逻辑”过程存储在一个函数中,以使您的代码更具可读性和可重用性。例如:

def add_user(store):
    user = raw_input('Create Username: ')
    password = raw_input('Create Password: ')
    if user in store:
        print "That user already exsist"
        return False
    else:
        store[user] = password
        return True

# and call this 10 times for example...
global_store = dict()
for i in range(10):
    add_user(global_store)

(更不用说使用类等) 对检查密码部分做同样的事情,然后你可以使用你做的循环做一些改变来做你期望的......

我希望我说的很清楚,并且我帮助了 :)

关于Python:创建登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304712/

相关文章:

python - 获取特定用户的 last_login 时间? ( Django )

php - 使用 Symfony 框架的生产服务器上的用户登录失败(由于...无法处理身份验证请求)

python - 在解析 wiki 语料库时禁用 Gensim 删除标点符号等

javascript - Django 使用 Ajax 上传多个文件,无需表单

python - IOerror 的 "causes"是什么

php - MySQL中选择的时候需要用我的 'sql_real_escape_string'吗?

postgresql - 尽管有开放的信任设置,Postgres 9.2 数据库仍要求输入密码

python - 根据行总和在 2D Numpy 数组中设置值

python:如何转义路径中的斜线?

http - 无 session 设计是否可行?