Python 创建登录系统

2024-04-24 20:13:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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语句来检查列表以查看用户是否已经存在(但我认为这不起作用)

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

谢谢大家!


Tags: storekeyinputrawifcreatepasspassword
3条回答

这是一个好的开始。我建议您签出:http://www.greenteapress.com/thinkpython/,使用字典之类的数据结构将大大简化此任务。

要查看一个项是否已经在列表中,可以遍历它

for item in list:
    if input == item:
        # item is in list
        break
    # item is not in list

一种可能也有帮助的策略是将代码模块化为函数。例如,如果用户已注册,则可以使用check_name函数返回True:

def check_user(user, user_list):
    for item in list:
        if user == item:
            return True
            break
        return False

还有一些较短的方法可以做到这一点,例如:Python: check if value is in a list no matter the CaSE

当你最终在网上为你的项目服务时,看看Django或Flask这样的框架,它们会大大简化登录、管理用户等事情。祝你好运。

让我们一步一步来:

首先,检查用户是否存在将始终告诉您它是否存在,因为您正在添加用户,然后检查用户是否存在。所以你写的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的计算结果是真的)或者更好的while True:

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

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)

(更不用说使用类等) 对check password部分也做同样的操作,然后您可以使用您做了一些更改的循环来完成您期望的操作。。。

我希望我是清楚的,而且我帮助了:)

这可能不是你所期望的答案,但这里是:不要重新发明轮子。

尽可能多地使用现有的工具,关注那些你不能免费获得的功能。

相关问题 更多 >