Python作业--登录接口
2024-08-29 06:04:15
作业需求:
编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
实现思路:
1.从文件获取用户名密码
2.判断是否在黑名单中
3.验证用户名密码
成功:输出认证成功
错误:判断验证次数,超过3次写入黑名单
userinfo.txt文件格式
{"name":"alex","password":"abc123"}
{"name":"songkunhuang","password":"abc123"}
# -*- coding: utf-8 -*-
"""
Created on 10:32 2017/7/27
@author: Song
@E-mail: songkunhuang@163.com """
# 输入用户名密码 验证信息从文件读取
# 认证成功显示欢迎信息
# 输错三次,锁定用户 保存到文件 黑名单 # 解析用户文件 json eval
userinfo_file = open("userinfo.txt","r")
user_list = []
for user in userinfo_file.readlines():
user = user.replace("\n", "")
user_list.append(eval(user)) # 读取黑名单
blackuserlist_file = open("blackuserlist.txt","w+")
black_list = []
for blackuser in blackuserlist_file:
blackuser = blackuser.replace("\n", "")
black_list.append(blackuser) def sucess(name):
print("welcome",name)
exit() count = 3
flag = 0
while count > 0:
username_input = input("Username:")
password_input = input("Password:")
if username_input in black_list:
print("账户已经被锁定")
else:
for i in user_list:
if username_input == i.get("name") and password_input == i.get("password"):
flag = 1
print("认证成功")
sucess(name=username_input)
break if flag == 0:
count = count - 1
if count > 0:
print("认证失败,你还可以尝试 %d 次" % count)
else:
for i in user_list:
if username_input == i.get("name"):
blackuserlist_file.write("".join([username_input, "\n"]))
print("%s 账户已经锁定" % username_input)
print("无法尝试") userinfo_file.close()
blackuserlist_file.close()
最新文章
- Lamda表达式多个字段排序问题 ThenBy、ThenByDescending
- 可跨域的单点登录(SSO)实现方案【附.net代码】
- 解决Python中不能输入汉字的问题
- wifi的country code
- 全站HTTPs,没那么简单
- 一个简单的网页布局HTML+CSS
- ES6新特性(函数默认参数,箭头函数)
- Silverlight项目笔记4:初识Prism以及IoC
- MongoDB库设计原则及实践
- C# 特性参数(注解属性加在参数前面)
- 使用TensorFlow创建第变量定义和运行方式
- Ubuntu问题:E45: 'readonly' option is set (add ! to override)错误解决
- linux下设置默认路径
- Java SE之反射技术[Field](二)
- 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)C - Cactus Jubilee
- CentOS安装openvpn报错:error: route utility is required but missing
- Linux必备知识
- MVC文件上传03-使用Request.Files上传多个文件
- C# 的三种序列化方法
- 如何处理服务器SSL收到了一个弱临时Diffie-Hellman 密钥?