Python登录接口编写

需求:

  1. 输入用户名,密码
  2. 认证成功显示欢迎信息
  3. 输入错误三次后锁定用户

Readme:

  1.ID.txt是存放用户名、密码的文件,和linux一样使用冒号隔开,相比空格、Tab键间隔,冒号更好处理

    sam:123

    jack:456

    tom:789

  2.LockID.txt是存放被锁定用户名的文档,默认为空.

  3.用户登录时首先会判断是不是在锁定文件中,如是则提示已锁定并退出程式

  4.接下来判断用户ID是否合法,合法用户密码错误3次会被锁定;非法用户ID错误3次直接退出,不会记录

流程图:

    

代码:

  

#-*- coding:utf-8 -*-
#Version:python3.5
#Programme Summary:密码错误3次,对应用户名将被锁定;用户名错误3次,程序将会登出。

import sys,getpass
#文件路径使用变量,方便变更
LockID = 'I:\python_test\LockID.txt'
ID = 'I:\python_test\ID.txt'
#定义锁定用户的函数
def Deny_ID(username):
    with open(LockID,'a') as Deny_f:
        Deny_f.write('\n' + username)
        sys.exit("密码错误3次,帐号被锁定!")

ID_list=[]
count = 0
#用列表获取用户ID,方便下面判断用户是否合法
with open(ID, 'r') as ID_file:
    for lines in ID_file:
        (usr, pawd) = lines.strip().split(':')
        ID_list.append(usr)
#主程序3次循环
while count < 3:
    count += 1
    username = input('用户名:')
    #用with方法读取文档,可防止后面忘记关闭文件
    with open(LockID,'r') as Lock_f:
        #for循环判断用户是否在锁定表中,如在则提示被锁定,程序退出
        for line in Lock_f:
            if username == line.strip('\n'):
                sys.exit("此用户已被锁定,请找管理员.")
        #判断用户名是否合法
        if username in ID_list:
            p = 0
            #如用户名合法,接着判断密码是否正确
            while p < 3:
                p +=1
                password = getpass.getpass("密码:")
                with open(ID,'r') as ID_f:
                    for lines in ID_f:
                        #用冒号分离并获取用户ID和密码
                        (user,passwd) = lines.strip().split(':')
                        #判断用户ID和密码是否同时成立
                        if user == username and passwd == password:
                            sys.exit("欢迎用户%s登录!"%username)
                    else:
                        if p != 3:
                            print("密码错误第%d次,3次将被锁定" % p)
                        else:
                            #调用锁定用户函数
                            Deny_ID(username)
     #不合法用户ID
        else:
            if count != 3:
                print("用户名错误第%d次."%count)
            else:
                #错误用户ID不会写入锁定表
                sys.exit("用户名错误3次,程序登出!")

  

猜你喜欢

转载自www.cnblogs.com/pynetwork/p/8910557.html