Python 实现简单登录接口功能
功能:
输入用户名和密码
认证成功后显示欢迎信息
输错三次后锁定
知识点:
文件读写
If语句
字典
用户输入
While循环
函数
代码:
#!/usr/bin/env python
'''
Project: system_login_example
Name: system_login_example.py
Author: Uncle Tong
Blog: https://www.cnblogs.com/borned
Date: 2022/6/9 12:21
'''
from json import load, dump
with open("system.json","r", encoding="utf-8") as file:
system_data = load(file)
def deal_error(error_type, input_error_number):
print(system_data["system_msg"][error_type], system_data["system_msg"]["left_login_number"],
system_data["login_limit"] - input_error_number)
if input_error_number >= 3:
print(system_data["system_msg"]["number_out"])
system_data["system_locked"] = True
with open("system.json","w", encoding="utf-8") as file:
dump(system_data, file)
if system_data["system_locked"] == True:
print(system_data["system_msg"]["locked"])
else:
input_error_number = 0
logined = False
while input_error_number < system_data["login_limit"] and logined == False:
username = input("Enter UserNmae:")
if username not in system_data["user"]:
input_error_number += 1
deal_error("name_error",input_error_number)
else:
input_error_number = 0
while input_error_number < system_data["login_limit"]:
password = input("Enter PassWord:")
if password == system_data["user"][username]:
print(system_data["system_msg"]["welcome"])
logined = True
break
else:
input_error_number += 1
deal_error("password_error",input_error_number)
数据:system.json
{
"system_locked": false,
"login_limit": 3,
"user": {
"张三": "1234",
"李四": "5678",
"王五": "w01w",
"钱六": "abcd"
},
"system_msg": {
"locked": "系统处于锁定状态,禁止登陆.请联系系统管理员处理!",
"name_error": "用户名输入错误!",
"password_error": "密码输入错误!",
"number_out": "您已超出系统允许登录次数,系统锁定,请联系系统管理员处理!",
"welcome": "欢迎登录!",
"left_login_number": "剩余登录次数为:"
}
}
流程图


浙公网安备 33010602011771号