lee: atm三层结构/加密加盐/登录装饰器

1\用户视图层 -> 逻辑处理层 ->数据处理层,不能越级处理问题.
2\core--src.py
创建功能字典--func_dic
def run():while True:打印功能字典列表
if choice in func_dic 则开始执行各个功能函数
定义各个功能函数,def register():pass
定义login_user = None,写完登录函数后,global = login_user/ = username

3\根目录 start.py
import os sys from core import src
设置sys.path.append(os.path.dirname(file))环境变量
main--->src.run()

4\conf--settings设置BASE_PATH USER_DATA_PATH常量

5\db--handler写def select(username)取出字典
def save(user_dic) 按字典格式保存
6\lib--commcon公共方法
密码加密加盐

# 密码加密加盐
import hashlib

def get_pwd_md5(password):
    m = hashlib.md5()
    m.update(password.encode('utf-8'))
    salt = '12345.md5'
    m.update(salt.encode("utf-8'))
    res = m.hexdigest()
    return res

登录认证装饰器:

# 登录认证装饰器:
def log_auth(func):
    from *modul import *.py  # 导入主程序,login_user = ""的文件
 
    def inner(*args, **kwargs):
        if *.py.global_login_user != "":
            res = func(*args, **kwargs)
            return res
        else:
            *.py.login()
  return inner

装饰器的功能:
1\调原函数:--首先要在装饰器里面执行一遍原来的程序.
2\增加新功能:--语法糖下边的程序就不执行了.去执行装饰器,执行装饰器后, 在原程序的前或后,加上新的功能. e.g. 登录认证,就是典型的装饰器,只要点击任何功能,先由装饰器检测login_user="",只要为空,那就重新执行login().

posted @ 2022-09-24 18:49  六八少年  阅读(23)  评论(0编辑  收藏  举报