Python:创建登录系统

时间:2012-04-24 19:29:43

标签: python login

我想使用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语句检查列表,看看用户是否已经存在(但我认为没有用)

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

非常感谢!

3 个答案:

答案 0 :(得分:5)

让我们一步一步走:

首先,检查用户是否存在将始终告诉您它,因为您正在添加用户,然后检查它是否存在。所以你写的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:

第三,用户名/密码检查仅检查最后一个用户和密码。如果您使用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)

(更不用说使用课程等) 对检查密码部分执行相同的操作,然后您可以使用您所做的循环进行一些更改,以达到您的预期...

我希望我很清楚,而且我帮助过了。)

答案 1 :(得分:4)

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

尽可能使用现有工具,并专注于您无法免费获得的功能。

答案 2 :(得分:2)

这是一个好的开始。我建议您查看: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这样的框架,它们大大简化了登录,管理用户等事情。祝你好运。