ATM项目开发流程
1.项目需求分析
ATM一系列小功能:
注册,登录,提现,转账,充值,查看流水,购物车,管理员
2.ATM架构设计
第一层
与用户直接打交道 不参与核心逻辑的编写(数据展示与获取)
cmd终端
浏览器(前端)
第二层
项目核心逻辑
py文件
后端框架(后端)
第三层
数据库
py文件 json文件
数据库(MySQL)
3.ATM目录搭建
bin文件夹——用于存储程序的启动文件
start.py
conf文件夹——用于存储程序的配置文件
settings.py
core文件夹——用于存储程序的主体逻辑
src.py
interface文件夹——用于存储程序的接口文件
user_interfface.py
shop_interface.py
back_interface.py
admin_interface.py
lib文件夹——用于存储程序的公共功能
common.py
log文件夹——用于存储程序的日志文件
log.log
db文件夹——用于存储程序的数据文件
db_handler.py
readme文件(txt文件——用于编写程序的说明
requirements.txt ——用于存储程序的第三方模块名称和 版本
ATM+购物车逻辑分享
ATM+购物车逻辑分享
1.ATM注册功能
面条版
获取用户数据(用户名 密码 确认密码)
比对两次密码是否一致
构建用户字典数据
利用json序列化到文件中
架构版
第一层:获取用户数据
第二层:校验用户是否存在;构造用户字典;完成用户注册
第三层:保存用户数据的方法(序列化功能>>>:将字典写入文本文件中)
2.ATM登录功能
第一层:获取用户数据
第二层:校验用户是否存在;获取用户字典数据;比对密码是否一致
第三层:提取用户数据的方法(反序列功能>>>:将json文件里面的数据转成字典)
3.代码封装与优化
settings.py
4.ATM密码加密功能
common.py
5.校验用户登陆装饰器
装饰器模板
全局变量
6.查看余额功能
查看的应该是当前登录用户的账户余额
也就意味着查看余额的功能需要用户登录 并且登录之后需要保存用户状态
1.如何保存用户状态
全局变量存储用户登录信息
2.如何校验用户登录
装饰器
如何区分用户是否登录成功
我们可以在第二层函数的返回值上添加一个布尔值 用于标识是否成功
为了保证统一和后期编写方便 我们将第二层所有的函数返回值全部变成两个
第一个是布尔值 第二个是具体的数据值
针对全局变量的存储位置
第一层更合适
7.提现功能
在第一层获取提现金额
调用第二层提现接口,传入当前登录用户名和金额
第二层获取当前用户账户余额,判断是否充足
如果充足的话则完成提现期间可以加上提现手续费
完成账户余额扣款 记录流水 并保存数据 添加日志
8.转账功能
在第一层获取用户想要转账的目标账户名和金额数
调用第二层转账接口 传入当前登录用户、转账用户、转账金额
获取登录用户数据、转账用户数据
判断转账金额是否小于登录用户的账户余额
账户余额大于转账金额则扣去相应的转账金额、目标账户余额增加
双方账户都记录流水 保存用户数据 并添加日志
9.查看账单
直接查询当前登录用户数据并返回账单信息即可
我们针对用户的提现、转账、消费 都象征性的在用户字典的flow键对于的值列表中记录一条信息即可.
10.日志功能
配置文件拷贝日志字典
公用文件编写日志函数
接口文件导入日志函数
11.购物车功能
直接CV即可 然后核对代码需要修改的地方(数据的获取和保存)
12.管理员功能
1.只有管理员才可以触发
2.冻结账户
3.移除账户
4.查看指定账户的余额
5.充值执行账户的余额
6.查看指定账户的账单
7.查看指定账户的购物车
ps:4567也可以直接合并 返回指定用户的字典数据
标签:转账,ATM,登录,账户,流程,py,用户,购物车
From: https://www.cnblogs.com/wwssadadbaba/p/16845587.html