python-实现登录接口

简介:1.在本地创建两个文件,一个文件的内容是存储用户名和密码,另一个的内容是存储锁定的用户

         2.登录次数限制为三次,当密码错误三次后,该账号锁定,无法再次登录

 

 

#coding=utf-8

user_info_list = []
#打开两个文件
with open('userinfo','rb') as userinfo_file,\
    open('locketuser','rb') as locketuser_file:
        all_userinfo_file = userinfo_file.read()                        #获取文件中的内容
        all_userinfo_file_list = all_userinfo_file.splitlines()         #把文件中的内容按行分割,放入列表中
        for user_info_str in all_userinfo_file_list:                    #获取列表中的每个元素
            user_info_tuple = tuple(user_info_str.split())              #把每个元素保存为一个数组
            user_info_list.append(user_info_tuple)                      #把每个数组添加到一个列表中
        user_info_dict = dict(user_info_list)                           #把列表转为一个字典


        all_locketuser_file = locketuser_file.read()
        user_locket_info_list = all_locketuser_file.splitlines()
with open('locketuser','ab') as locketuser_file:
    while True:
        user_login_flag = False                                         #定义一个是否登录状态的,初始值未false
        username_input=raw_input('请输入用户名:')
        if username_input in user_locket_info_list:                     #先判断是否在黑名单中
            print ("您已被加入黑名单,请重新输入。。。")
        elif username_input in user_info_dict:                          #判断用户名是否在字典中
            count = 3
            while True:
                pass_word = raw_input("请输入密码:")
                if pass_word == user_info_dict.get(username_input):     #通过字典,直接判断用户名和密码是否匹配
                    user_login_flag = True 
                    print ("{0}登录成功,欢迎。。".format(username_input))
                    break                                               #登录成功,跳出内层while循环
                else:
                    count -= 1                                          #用户名和密码未匹配成功,可尝试登录次数-1
                    if count == 0:                                      #可尝试登录次数为0,则退出
                        locketuser_file.write(username_input)
                        exit("{0}已被锁定".format(username_input))
                    print ("{0}密码错误,还剩{1}次机会。。".format(username_input,count))  #可尝试登录次数不为0,可继续尝试登录,给出剩余次数提示
            if user_login_flag:                                         #如果登录成功,则跳出外层while循环
                break
        else:
            print ("\033[31m{0}\033[0m,此用户名不存在,请重新输入".format(username_input))

  

posted @ 2017-03-14 18:38  KoishNee  阅读(215)  评论(0编辑  收藏  举报