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": "剩余登录次数为:"
  }
}

流程图

posted @ 2022-06-10 11:46  童叔  阅读(502)  评论(0)    收藏  举报