欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pythonATM,购物车项目实战8--通用函数的使用lib/common

程序员文章站 2022-06-21 15:33:43
...

通用函数的使用lib/common:


"""
存放公共方法
"""
import hashlib

#md5加密

def get_pwd_md5(password):
    md5_obj=hashlib.md5()
    md5_obj.update(password.encode('utf-8'))
    #加盐操作
    salt='我是加盐操作123456!'
    md5_obj.update(salt.encode('utf-8'))

    return md5_obj.hexdigest()


# 登录认证装饰器模板

# def login_authmobao(func):
#     def inner(*args,**kwargs):
#         res=func(*args,**kwargs)
#         return res
#
#     return inner()

 # 登录认证装饰器
 # 装饰器的使用,为其他函数进行装饰。
def login_auth(func):
    from core import src   #在这里导入的好处是,避免重复导入问题

    def inner(*args,**kwargs):
        if src.login_user:

            res=func(*args,**kwargs)
            return res
        else:
            print("用户未登录,无法使用功能,请登录!")
            src.login()

    return inner()

 

这里的函数:

get_pwd_md5(password):

作用:1.在账号注册的时候,调用通用函数加密密码,把数据存入存储中

2.在登录的时候,输入密码后,再次调用加密函数,把密码进行加密,然后对比两次加密的内容。

进行判断信息。

# 注册接口

def register_interface(username,password,balance=15000):
    #2)查看用户是否存在
    #2.1)调用数据处理层中的select函数,会返回用户字典或者None

    user_dic=db_handler.select(username)
    #{user:user,pwd:pwd...} or None
    # 若用户存在则return ,告诉用户重新输入
    if user_dic:
        # return(False,'用户名已经存在!')
        return False,'用户名已存在!'
    #3)若用户不存在,则保存用户数据

    #做密码加密
    password=common.get_pwd_md5(password)



    #3.1 组织用户的数据的字典信息
    user_dict={
        'username':username,
        'password':password,
        'balance':balance,
        # 用于记录用户流水的列表
        'flow':[],
        # 用于记录用户购物车
        'shop_car':{},
        #locked 用于记录用户是否被冻结
        #False:未冻结  True:已经被冻结
        #
        'locked':False
    }

    #3.2 保存数据
    db_handler.save(user_dict)

    return True,f'{username}注册成功!'

登录的时候加密事项:


# 登录接口

def login_interface(username,password):
    #1)先查看当前用户数据是否存在
    #{用户数据字典} or None
    user_dict=db_handler.select(username)

    #用户判断用户是否存在

    #2)判断用户是否存在
    if user_dict:
        #给用户输入的密码做一次加密
        password=common.get_pwd_md5(password)
        #3)校验密码是否一致
        if password==user_dict.get('password'):
            return True,f'用户:{username}登录成功!'
        else:
            return False,'密码错误'

    return False,'用户不存在,请重新输入'