1、作业需求:
模拟实现一个ATM + 购物商城程序
额度 15000或自定义
实现购物商城,买东西加入 购物车,调用信用卡接口结账
可以提现,手续费5%
支持多账户登录
支持账户间转账
记录每月日常消费流水
提供还款接口
ATM记录操作日志
提供管理接口,包括添加账户、用户额度,冻结账户等。。。
用户认证用装饰器
2、流程图
3、目录结构
|——员工信息查询系统 |——bin目录 | |—— _init.py | |__ Stary.py(开始程序) | |——core目录 | |—— __init__.py | |—— main.py(主模块程序) | |—— auth.py(登录认证程序) | |——db目录 | |—— shop_car(购物车文件目录) | |——XXX.txt(购物车文件) | |__ user_info(用户数据) | |——XXX.json(用户信息数据) |——log目录 | |—— card_log(信用卡日志目录) | |——XXX.log(信用卡日志文件) | |__ shop_log(购物日志目录) | |——XXX.log(购物日志文件) |——modules目录 | |—— __init__.py | |—— admincenter.py(管理中心程序) | |—— creditcard.py(信用卡程序) | |—— shopping.py(购物商城程序) |__ __init.py__
4、core目录
auth.py(登录认证模块)
#-*- Coding:utf-8 -*- # Author: D.Gray import os,sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) def accse_login(user_data): ''' 定义一个用户登录装饰器 :param user_data: :return: ''' def out_wrapper(func): #func接收 admin_info,shop_info,admin_info函数的返回值 def wrapper(*args,**kwargs): count = 0 if not user_data['is_authenticated'] and count < 3: print("33[32;0m用户登录认证33[0m".center(40, "-")) while count < 3: user = input('