用python编写简易登录接口

需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序
  • 可以支持多个用户登录
  • 用户3次认证失败后,退出程序,再次启动程序尝试登陆时,还是锁定状态

下面是我写的代码,如果有BUG或者不足之处,还请指出。

 

"""
需要先在本地创建一个名为locked_user.txt的文件,才能执行下面的代码。
"""
import os

current_path = os.getcwd()  # 获取当面目录
db_username = ['alex', 'wusir', 'oldboy', 'edward']  # 用户名数据库,用户名不能是一样的
db_password = [123, 321, 456, 123123, 123]  # 密码可以是一样的

locked_file = open(current_path + '/locked_user.txt')  # 打开文件
locked_info = locked_file.readlines()  # 获取被锁定用户的信息。readlines一次读取所有文件,并返回list.因为我们不止锁定一个用户,所以用这个方法
locked_file.close()

count = 3
while count > 0:
    count -= 1
    username = input('username:').lower()
    if (username + '\n') in locked_info:  # 判断用户是否被锁定,加\n是因为下面用了追加模式,每追加一个用户名就重起一行
        print('用户名已被锁定')
        break
    password = int(input('password:'))
    if username in db_username and password in db_password:  # 用户名和密码都在数据库里才能验证通过
        print('welcome')
        break
    else:
        if username in db_username:
            if count == 0:
                locked_file = open(current_path + '/locked_user.txt', 'a')  # 在locked_user.txt里用追加模式储存这个用户名,每追加一个重起一行
                locked_file.write(username + '\n')
                locked_file.close()
                print('登录三次失败,用户名被锁定')
            else:
                print('用户名或错误,你还有{}次机会'.format(count))
        else:
            if count == 0:
                print('用户名不存在,登陆失败')
            else:
                print('用户名不存在,你还有{}次机会'.format(count))

"""
这个登陆系统有两个缺陷:
1.需要先创建一个名为locked_user.txt的文件才行,否则会报错,目前还不会用代码让python去自动创建名为locked_user.txt的文件
2.其实只有在第三次输入用户名、并且用户名在数据库的时候才会被锁定。不知道一般的网站登录系统是不是这样,是不是系统会判断3次输入一样的用户名才会给锁定。
"""

 

转载于:https://www.cnblogs.com/lshedward/p/9904325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值