python买东西_Python实战之ATM+购物车
学python一个月以来的第一个工程级别项目!!!!!
1.首先分析项目需求:
模拟实现一个ATM + 购物商城程序
额度 15000或自定义---->注册功能
实现购物商城,买东西加入 购物车,调用信用卡接口结账----->购物车,支付
可以提现,手续费5%----->提现
支持多账户登录----->登录
支持账户间转账----->转账
记录日常消费流水----->记录流水
提供还款接口---->还款
ATM记录操作日志---->日志
提供管理接口,包括添加账户、冻结账户等。。。---->管理接口,添加,冻结账户
用户认证用装饰器------>装饰器
用软件功能表达就是:
1、登录
2、注册
3、查看余额
4、转账
5、还款
6、取款
7、查看流水
8、购物
9、查看购买商品
2.设计程序以及程序的架构
购物车架构图
通过架构图来设计软件:
程序结构
3.程序结构:
ATM:程序的根目录
conf:配置文件
setting:放置配置文件,日志字典,日志与db路径
core:核心代码
src.py:核心功能的主体代码,为用户展示功能以及让用户选择,并与用户交互,接收用户输入的数据
在取款/转账/购物完成以后可以在后面加上将此信息加入到该账户的流水(用户接口层注册里面的bankflow)列表中去.
db:数据操作
db_handler.py:数据处理层,里面包含两种方法:save(),传入用户信息字典,存入硬盘..select():传入姓名,若用户存在,返回用户信息字典,若不存在,返回False
wzj.json:存放wzj用户信息的文件,包含内容{用户名,密码,余额,信用卡额度,交易流水,购物车信息,是否锁定}
inter_face:接口层
bank.py:银行接口,包含方法有:
withdraw_interface(money):取款接口:调用src里的登录用户的账户名通过调用db_handler.select方法查询到用户全部信息,更改完余额以后再调用db_handler.save方法重新存入文件
transfer_interface(add_name, money),转账接口
check_balance_interface(),擦看余额接口
check_record_interface(),查看流水接口
user.py:用户接口,包含两个方法
1.用户注册时传入的账号密码,通过调用db_handler里的方法判断,若账户不存在,则写入文件,若存在,则返回用户名已存在,,,,
2.登录时传入用户名与密码,通过调用db_handler里的方法与数据库中的信息匹配
lib:库
common.py:存放常用的函数,当作模块给其他文件调用
log:存放日志文件
readme:软件说明书
start.py:程序入口
4.主要代码
bank-->取款接口
转账接口
用户接口
数据操作,用于读写数据
5.购物与支付
在src文件里取到合法的购物车信息与商品总价格后,传入购物车接口,通过调用bank里面的支付接口判断,若余额足够则购买成功,否则返回余额不足
src里的购物代码
购物车接口
总结!!!
ATM的他的精髓就在于整个软件分为三层,,用户交互层,只负责接收合法数据传入接口层,接口层只负责处理数据,数据处理层只负责处理数据,这样扩展性极强,,比如我现在是在cmd里运行,如果移植到前端或者安卓里,只需要修改下用户交互层就可以
注意:用户交互层不能直接修改数据,只能通过调用接口,让接口负责修改数据
python买东西_Python实战之ATM+购物车相关推荐
- python编码思维导图_Python入门之ATM+购物车代码版思维导图
该项目结合了ATM模版和购物车需求,整个思维导图用Python代码实现,使用思维导图可以清晰明了的看清整个框架: 过程中,用到了Python的知识有Python常用模块,Python常用内置包,log ...
- python基础实战项目——ATM+购物车代码大全
需求分析 1.实现用户的登录注册功能,并且用户分为普通用户和管理员用户,登录时需要先输入验证码 2.用户注册时会自动添加 20000 元的余额,与 0 元的银行卡信用余额 3.用户拥有–充值,提现,转 ...
- 用python制作网页要学哪些东西_python实战计划学习:做一个网页
没有办法居中,不知道原因 展示效果: 代码如下: CSS表中header img样式中增加 text-align:center,这样图片才能铺满全屏 下面是标签说明: 1.rel属性用于定义链接的文件 ...
- python打印日历_Python实战练习——打印日历教程
很长一段时间没有接触过C语言了,想来做这一行当已经有三两年了. 今天突然想起来以前用C语言在VC6上写代码的日子,想了想以前的一些实战练习. 所以今天打算用Python来写一个C语言以前练习的题目-日 ...
- python怎么掉包_Python实战教程:拒绝调包,如何用python推导线性回归模型
原标题:Python实战教程:拒绝调包,如何用python推导线性回归模型 最近有人问我一个问题,我数学不好,代码基础薄弱,英语一般般,如何入门当今最为前沿的机器学习领域?均方差损失,MSE,平方损失 ...
- python异步爬虫_Python实战异步爬虫(协程)+分布式爬虫(多进程)
转自:https://blog.csdn.net/SL_World/article/details/86633611 在讲解之前,我们先来通过一幅图看清多进程和协程的爬虫之间的原理及其区别.(图片来源 ...
- 有没有关于python的壁纸_Python 实战之精美壁纸下载
之前讲解了爬虫系列的文章<最通俗的Python3网络爬虫入门>今天继续精美壁纸下载(动态网站). 实战背景 已经会爬取文字了,是不是感觉爬虫还是蛮好玩的呢?接下来,让我们进行一个进阶实战, ...
- python语音唤醒_Python实战教程:为女朋友打造一款智能语音闹钟
Python实战教程:为女朋友打造一款智能语音闹钟 前言 最近学了一些物联网相关的技术,有点心血来潮,寻思自己可以做点什么,恰巧之前听说过一些树莓派的传闻,就想着做一款智能点的闹钟. 需要说明的是,在 ...
- python logging使用_Python实战之logging模块使用详解
用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...
最新文章
- BOM,DOM常见操作和DHML
- 使用 Truffle Develop 和 console
- logback不同业务的日志打印到不同文件
- ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体
- STM32F4 HAL库开发 -- RTC
- 提高抗打击能力_如果提高心理抗打击能力?
- PHP5.1时间相差8小时问题解决。
- P1236-Network of Schools(学校网络)【最强联通块,Kosaraju】
- C#基础(四)--值类型和引用类型,栈和堆的含义
- 远程线程需要注意的问题
- 你的计算机usb管理策略,您的计算机已经实施了USB存储设备管理策略,系统发现你使用了USB存储设备,该设备已被阻止,如有疑问请与...
- 蓝桥杯:BFS解决问题总结(九宫重排,跳蚱蜢,卡片交换)
- 贺利坚老师汇编课程53笔记:寄存器冲突问题解决方案定义子程序标准框架
- python矩阵乘法代码_python3 单行代码实现矩阵相乘
- 免费https ssl证书freessl.org的申请及配置
- 人脸识别接口_活体检测在人脸识别中不可或缺的一部分
- 【软件测试】BUG的管理
- 2022年山东最新交安安全员考试模拟题及答案
- 【流畅的Python学习笔记】2023.4.21
- STM32F407定时器输入捕获
热门文章
- 安利一款编辑神器——Markdown
- 1到n阶乘算法的改进
- 如何给ppt编辑页码_拒绝千篇一律:Word插入“侧边”页码,让文档别具一格!...
- 可信计算 沈昌祥_沈昌祥院士:用主动免疫可信计算构筑车联网安全防线
- termcap-1.3.1的configure.in文件逐行分析
- 打开pjsip2.1版本的视频支持
- 修改了WINCE自带的驱动程序后如何编译
- vue 搜索框header_vue项目header模块编写
- 【转】Win32 SDK 实现带图片的 Button 控件BM_SETIMAGE(Disable时图片不显示)
- ASP.Net请求处理机制初步探索之旅 - Part 1 前奏