ATM+购物车

项目架构设计

三层架构
	core目录下的src.py(浏览器/用户视图层)
	interface目录下的多个py文件(框架/逻辑接口层)
	db目录下db_handler.py(数据库服务/数据处理层)

项目目录搭建

ATM
-bin
	-start.py
-conf
	-settings.py   一般全大写
-core
	-src.py
-interface
	-user_interface.py
	-bank_interface.py
	-shop_interface,py
	-admin_interface.py
-db
	-userinfo.txt
	-db_handler.py
-log
	-log.log
-lib
	-common.py
-README
-requirements.txt

项目功能搭建

1.注册功能
2.登陆功能
3.查看余额
4.提现功能
5.还款功能
6.转功能
7.查看流水-记录日常流水
8.添加购物车功能
9.查看购物车功能
10.结算购物车功能
11.管理员功能-添加账户、用户额度、冻结账户

代码实现:

1.项目搭建

2.功能搭建

3.分步实现功能

​ 1.注册功能(user_interface.py)

"""  牢记三层结构
		1.用户视图层
		2.逻辑接口层
		3.数据处理层(数据的增删改查)
"""
1.用户视图层
	1.1  获得用户信息
	1.2  判断两次密码是否一致
	1.3  直接调用用户注册接口
	1.4  接收返回值并打印
2.逻辑接口层(register_interface)
	2.1  判断用户是否存在,调用第三层数据库
	2.2  用户存在则返回用户已经存在,结束本次执行代码
	2.2  用户不存在,则对用户的密码进行加密 调用公共工具common的加密函数进行加密
	2.3  构造用户字典并调用第三次数据处理层进行数据序列化进json文件的存储
	2.4   返回用户注册成功
3.数据处理层(数据的增删改查)
	3.1  查看用户是否存在,存在则返回给接口层用户字典信息
	3.2  拼接路径完成用户注册(用户信息的存储)
	

​ 2.登录功能(user_interface.py)

1.用户视图层
	1.1 获取相关用户信息
	1.2 判断用户名是否存在,直接调用用户登录接口
	1.3 接收返回值并打印
	
注意:""" 登录接口返回的数据值有两个,为了保证接口调用返回值的一致性,应该让所有的接口函数返回值个数保持一致,都应该变成两个"""

2.逻辑接口层(login_interface)
	2.1 判断用户名是否存在,调用第三层数据的查询
	2.2 字典接收第三层返回,判断字典是否有数据,结果为false 返回'用户不存在'
	2.3 用户存在,进行校验密码,调用公共工具get_hash对密码进行加密
	2.4 判断密码是否正确,正确返回用户登录成功,不正确返回'用户密码错误'
	
3.数据处理层(数据的增删改查)
	3.1 查看用户是否存在,存在则返回给接口层用户字典信息
	

​ 3.查看流水功能(bank_interface.py)

1.用户视图层
	1.1 直接调用查看账户余额的接口
	1.2 接收返回值并打印
2.逻辑接口层(check_flow_interface)
	2.1 查询当前用户字典数据 调用第三层数据的查询
	2.2 利用返回的字典直接查看余额
	2.3 将余额返回给第一层供用户浏览
3.数据处理层(数据的增删改查)
	3.1 返回给第二层用户字典

​ 4.提现功能(bank_interface.py)

1.用户视图层
	1.1 输入用户想要提现的数额withdraw_money
	1.2 直接调用提现的接口
	1.3 接收返回值并打印
2.逻辑接口层(withdraw_intrface)
	2.1 调用common的判断输入的withdraw_money是否整数或小数
	2.2 如果withdraw_money不是整数或小数,则return给第一层'请输入符合要求的整数或小数'
	2.3 如果withdraw_money符合要求,则查询当前用户字典数据 调用第三层数据的查询,并用字典接收
	2.4 计算提现的数目和手续费的总和
	2.5 判断提现的总和与用户账户余额比较
	2.6 账户余额大于提现总和,账户余额减去提现金额,再重新写入第三层数据库中的用户字典
	2.7 返回给第一层'转账成功'
	2.8  账户余额于于提现总和 ,直接返回给第一层并提示'账户余额不足,请先充值'
3.数据处理层(数据的增删改查)
	3.1 进行用户信息的存储

​ 5.还款功能(bank_interface.py)

1.用户视图层
	1.1 输入客户想充值的金额pay_money
	1.2 直接调用充值的接口
	1.3  接收返回值并打印
2.逻辑接口层(pay_money_interface)
	2.1 调用common的判断输入的pay_money是否整数或小数
	2.2 如果pay_money不是整数或小数,则return给第一层'请输入符合要求的整数或小数'
	2.3 查询当前用户字典数据
	2.4 将还款金额加入账户余额中,
	2.5 再重新写入第三层数据库
	2.6 返回给第一层 '充值成功'
3.数据处理层(数据的增删改查)
	3.1 进行用户信息的存储

​ 6.转账功能(bank_interface.py)

1.用户视图层
	1.1 获取要转账的用户target_name
	1.2 获取转账的金额target_money
	1.3 调用转账接口
	1.4 接收结果并打印
2.逻辑接口层(transfer_interface)
	2.1 传过来的值有 is_login.get('username'),target_name,target_money
	2.2 校验被转账用户target_name是否存在 调用第三层数据查询,并用target_dict接收
	2.3 判断字典是否为空,取反(not)操作 if not target_dict 为false 则返回第一层 '用户不存在'
	2.4 判断结果为True,则调用common的判断输入的target_money是否整数或小数
	2.5 如果target_money不是整数或小数,则return给第一层'请输入符合要求的整数或小数'
	2.6 target_money是整数或小数,调用第三层数据库获取转账人的信息,并用user_dict接收
	2.7 判断当前账户余额是否充足 当余额大于target_money,转账人余额减掉target_money,并调用第三层序列化更新当前用户is_login.get('username')信息
	2.8 被转账人余额加上target_money,并调用第三层序列化更新用户target_name信息
	2.9 返回给第一层 '转账成功'
	2.10 判断当前账户余额不足 当余额小于target_money,直接返回给第一层'账户余额不足'
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典target_dict
	3.2 查看用户并返回给第二层用户字典user_dict
	3.3 进行用户user_dict信息的存储
	3.4 进行用户target_dict信息的存储
	

​ 7.查看流水(bank_interface.py)

1.用户视图层
	1.1 直接调用查看的流水接口
	1.2 接收结果并打印
2.逻辑接口层(check_flow_interface)
	2.1 直接调用第三层数据库信息查看流水信息
	2.2 判断用户流水信息是否为空
	2.3 无流水信息返回 '该用户暂无流水记录'
	2.4 有流水信息直接返回用户的流水信息user_dict.get('water_flow')
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_dict

​ 8.添加购物车功能(shop_interface.py)

1.用户视图层
	1.1 直接调用添加购物车接口
	1.2 接收结果并打印
2.逻辑接口层(add_shop_car_interface)
	2.1 获取商品信息
	2.2 循环打印商品信息供用户选择
	2.3 获取用户输入的商品编号choice_num
	2.4 判断编号是否是纯数字并判断数字是否超出范围
	2.5 根据商品编号获取商品信息
	2.6 获取想要购买的商品数量good_num并判断商品数量是否是纯数
	2.7 构造临时小字典存储商品信息 temp_shop_car
	2.8 写入临时小字典中temp_shop_car
	2.9 添加结束标志'q' 用于保存购物车数据
	2.10 调用第三层获取当前登录用户的字典数据user_data_dict
	2.11 获得old_shop_car = user_data_dict.get('shop_car')
	2.12 保存购物车数据 判断存之前商品是否已经添加,分别做各自的添加操作
	2.13 调用第三层的数据保存函数
	2.14 返回给第一层 '添加购物车成功 欢迎下次再来'
	
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_data_dict
	3.2 进行用户user_data_dictt信息的存储
	

​ 9.查看购物车功能(shop_interface.py)

1.用户视图层
	1.1 直接调用查看购物车接口
	1.2 接收结果并打印
2.逻辑接口层(check_shop_car_interface)
	2.1 调用第三层数据库,获取取当前登录用户的字典数据并用user_dict接收
	2.2 获取当前用户购物车数据shop_car
	2.3 判断用户购物车是否有数据
	2.4 如果购物车有数据,返回购物车信息'shop_car'
	2.5 购物车为空,则返回 '暂无购物车数据'
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_dict

​ 10.结算购物车功能(shop_interface.py)

1.用户视图层
	1.1 直接调用查看购物车接口
	1.2 接收结果并打印
2.逻辑接口层(clear_shop_car_interface)
	2.1 调用第三层数据库,获取取当前登录用户的字典数据并用user_dict接收
	2.2 获取当前用户购物车数据及账户余额current_balance
	2.3 取反操作 如果购物车为空则直接返回 '购物车空空如也'
	2.4 统计购物车商品总价total_money
	2.5 比较账户余额与商品总价
	2.6 当total_money > current_balance时,直接返回 '账户余额不够'
	2.7 当total_money < current_balance时,用户的账户余额静减去total_money
	2.8 清空购物车user_data_dict['shop_car'] = {} ,并调第三层数据库存储数据
	2.9 返回给第一层 '消费的total_money和账户余额'
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_dict
	3.2 进行用户user_data_dictt信息的存储

​ 11 .管理员功能

1.用户视图层
2.逻辑接口层
3.数据处理层(数据的增删改查)

原文地址:http://www.cnblogs.com/zhanglanhua/p/16845972.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性