首页 > 其他分享 >ATM+购物车(思路流程)

ATM+购物车(思路流程)

时间:2022-10-31 16:55:28浏览次数:97  
标签:ATM 流程 py 用户 接口 购物车 视图 interface 编写

ATM +购物车(思路流程)

启动文件

首先,创建一个start.py作为整个项目启动的启动文件
然后导入os和sys模块,从core中导入src,也就是展示给用户看的
在src.py用户视图层中,先写好各个功能函数名,然后创建一个函数功能字典。
然后就是视图层的主程序,打印选择列表让用户选择,根据选择的编号来调用不同的功能函数。

配置信息

在conf的setting.py中,编写配置文件。
写好项目的根目录径BASE_PATH
写好商品信息路径GOODS_PATH
写好用户信息路径USER_DATA_PATH
然后写上日志配置(日志格式可以复制粘贴过来)

公共方法

在lib的common.py中存放公共方法
导入conf的settings配置
写上用户的登录认证装饰器
导入hashlib模块,写上密码的md5加密,以json格式存储密码。
导入logging.config,添加日志功能,在接口层使用。

数据处理层

在db_handler.py数据处理层中,导入json和os模块,从conf中导入settings配置。
编写查看数据函数,接收接口层传过来的username用户名,拼接用户json文件路径。
校验用户json文件,打开数据,并返回给接口层。
编写保存数据函数,用于添加新数据或者更新数据。
拼接用户的数据字典,保存用户数据。
编写获取商品数据函数,用于获取商品数据。
商品数据也是以json格式读取的。

注册功能

编写interface的user_interface.py的注册接口。
查看用户是否存在,若存在,返回“用户已存在!”
若不存在,就编写一个用户字典保存为“用户名.json”。
然后调用数据处理层的bd_hander的save功能进行保存。
在core的src.py用户视图层中,编写注册函数。
先定义一个全局login_user = None,用来记录用户登录状态的
让用户输入用户名和密码进行注册,两次密码必须相同。
调用接口层的注册接口,将用户名与密码交给接口层来进行处理。
根据flag判断用户注册是否成功,flag控制 return的结束。

登录功能

编写interface的user_interface.py的登录接口。
先调用数据处理层的db_handler的select功能查看当前用户数据是否存在
如果存在,就继续执行,如果不存在,就输入“用户不存在,请重新输入!”
在根据get用户指定的'locker'的 True或 False判断用户是否被冻结。
然后给用户的密码做一次加密,和取过来的加密的用户密码比对,查看是否一致。
如果一致,就登陆成功;如果不一致,密码不一致。
在core的src.py用户视图层中,编写登录函数。
让用户输入用户名和密码。
调用接口层的登录接口,将用户名与密码交给接口层来进行处理。
根据flag判断用户是否存在,flag控制 return结束。

查看余额功能

编写interface的user_interface.py的查看余额接口。
编写user_dict调用数据处理层的db_handler的select功能查看当前用户的余额。
返回给用户视图层。
在core的src.py用户视图层中,编写查看余额函数。
只有登录的用户才能查看。
调用接口层的查看余额接口,传入当前登录的用户名。
打印用户名和用户金额。

提现功能

编写interface的user_interface.py的查看提现接口。
编写user_dict调用数据处理层的db_handler的select功能查看当前用户的余额。
把当前余额变成整型,然后计算手续费。
判断用户金额是否足够,如果足够,就修改用户字典中的金额,如果不足够,就退出并提示“余额不足,请先充值!”
记录流水,调用数据处理层的db_handler的save和update功能保存并更新数据。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写提现函数。
只有登录的用户才可以提现。
让用户输入提现金额,判断用户输入的金额是否是数字,如果不是,就重新输入。
用户提现金额,将提现的金额交付给接口层来处理,传入当前登录用户名。
调用接口层的查看余额接口,传入当前登录的用户名。
打印用户名和提现信息和余额信息。

还款功能

编写interface的bank_interface.py的转账接口。
编写login_dict和to_user_dict调用数据处理层的db_handler的select功能。
获取“当前用户”和“目标用户”字典,判断目标用户是否存在,若用户存在,则判断“当前用户转账金额”是否足够。
若足够,给当前用户的数据,做减钱操作;给目标用户的数据,做加钱操作,然后记录双方流水。
调用数据处理层的db_handler的save功能保存数据。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写转账函数。
只有登录的用户才能提现。
判断用户输入金额是否数字或者>0,如果不是,就重新输入。
让用户输入转账的用户和金额。将输入的信息交付给接口层来处理,传入当前登录的用户名、对方用户名、金额。
调用接口层的,打印用户名和还款信息和余额信息。

流水功能

编写interface的bank_interface.py的查看流水接口。
编写user_flow_dict字典,调用数据处理层的db_handler的select功能,传入当前用户。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写查看流水函数。
调用interface的bank_interface.py接口,传入当前用户。
调用流水接口,输入流水信息。

添加购物车功能

编写interface的shop_interface.py的购物接口。
编写goods_dict字典,调用数据处理层的db_handler的select_goods功能查看商品信息。
将结果返回给用户视图层。
编写interface的shop_interface.py的add_shop_car_interface 购物车添加接口。
将用户视图层传来的商品信息存入字典。
如果商品不在购物车中则直接加入,商品在购物车中,修改商品数量以及总价。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写购物函数。
调用interface的bank_interface.py接口,获取全部商品信息并打印。
将对应编号的商品加入购物车,调用add_shop_car_interface购物车添加接口。
调用购物车添加接口,已经入购物车的信息。

购物车结算功能

编写interface的shop_interface.py的查看购物车接口。
编写user_dict字典,调用数据处理层的db_handler的select功能,传入当前用户。
编写shop_car_dict字典,取出user_dict字典中的"shop_car",然后记录流水信息。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写查看购物车函数。
调用interface的shop_interface.py接口,获取用户字典里的"shop_car"
打印购物车内的信息,让用户选择要购买的购物车内的商品ID,输入c清空购物车,输入q退出该界面。
如果ID不存在,就跳过本次循环,输入信息"商品不存在"。
获取选择付款商品的商品信息并打印。

标签:ATM,流程,py,用户,接口,购物车,视图,interface,编写
From: https://www.cnblogs.com/oiqwyig/p/16844916.html

相关文章

  • ATM项目的编写
    目录ATM项目的编写项目流程开发项目需求分析项目架构设计项目目录搭建项目功能搭建ATM项目的编写项目流程开发1.需求分析2.架构设计3.分组开发4.提交测试5.交付上线......
  • VMware WorkStation Pro 16安装MacOS 13 ,12手把手图文教程(全流程详细图解)
    因为工作需要使用VMwarePro16虚拟机进行安装MacOS12系统(macOS13安装同样教程,同样附了macOS13的下载,这里就以12为例进行了安装)下面我就把自己安装的过程以及需要的文......
  • iOS上架流程
    1准备2申请AppID2.1打开[苹果开发者官网](https://developer.apple.com),点击Account登陆账号。2.2进入ID申请3创建证书请求文件(*.cerSigningRequest文件......
  • iOS上架流程
    1准备2申请AppID2.1打开[苹果开发者官网](https://developer.apple.com),点击Account登陆账号。2.2进入ID申请3创建证书请求文件(*.cerSigningRequest文件)4添加软件开......
  • Java Web开发流程的学习
    一开始我只是想学习一下WEB界面的JAVA变成,看了这个文章:https://blog.csdn.net/java_0000/article/details/124480210要创建Web应用程序,告诉大家需要以下Java开发工具:I......
  • PDU分析-ping命令流程
    PDU分析-ping命令流程习题:有如下一个ping命令生成的PDU信息,从图片中的信息,从协议体系结构角度分析,可以分析出此PDU哪些信息?提示:从PDU的当前所在设备,PDU的目标设备,IP地......
  • Spring Security 认证流程
    SpringSecurity认证流程   本文以用户名/密码验证方式为例,讲解SpringSecurity的认证流程,在此之前,需要你了解SpringSecurity用户名/密码认证的基本配置。Sp......
  • 【音视频会议】使用Janus作为对讲服务器的后台框架和业务流程
    对讲后台业务架构图如下图:  图1、对讲后台业务架构图 通过NGINX负载Janushttp服务器的API接口,通过该API接口可以获取可用Janus服务器的IP和端口;客户端拿到可用对......
  • 大数据结构流程分析
    大数据结构流程分析:技术与业务,对于业务的理解是非常重要的。基于业务产生的价值,大数据工程师才会有自己的价值。大数据预测与分析,并不是能够预测所有的事情。  ......
  • 大数据技术流程
    目录​​1 javaEE与大数据的区别:1.1架构层面:​​​​javaEE:​​​​大数据:​​​​1.2技术层面:​​​​javaEE:​​​​大数据:​​​​1.3开发层面:​​​​javaEE:​​​......