python自学之旅day03【ATM+购物商城小程序01】
今天开始学习ATM+购物商城的实战项目,白天因为工作时间没法完整看视频写代码,晚上也只看了一部分。所以今天主要是完成了框架搭建和注册功能(注册部分用的是面条版的形式)
一、项目需求:
##模拟实现一个ATM + 购物商城程序 项目需求: 1、额度 15000或自定义 2、实现购物商城,买东西加入 购物车,调用信用卡接口结账 3、可以提现,手续费5% 4、每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息 5、支持多账户登录 6、支持账户间转账 7、记录每月日常消费流水 8、提供还款接口 9、ATM记录操作日志 10、提供管理接口,包括添加账户、用户额度,冻结账户等。。。 11、用户认证用装饰器 ##用户视图展示功能 1、注册功能 2、登陆功能 3、查看余额 4、提现功能 5、还款功能 6、转账功能 7、查看流水 8、购物功能 9、查看购物车 10、管理员功能
二、程序架构

三、core(src.py模块代码:作用是存放用户视图层代码)
'''
存放用户视图层
'''
#快捷方式:alt+(左键)可批量写
#1、注册功能
#面条版
def register():
while True:
# 1) 让用户输入用户名与密码,进行校验第一层
username = input('请输入用户名:').strip()
password = input('请输入密码:').strip()
re_password = input('请输入密码:').strip()
#小的逻辑处理:比如两次输入密码是否一致
if password == re_password:
import os
import json
from conf import settings
user_path = os.path.join(settings.USER_DATA_PATH, f'{username}.json')
#2)查看用户是否存在
#2.1)若不存在,则让用户重新输入
if os.path.exists(user_path):
with open(user_path,'r',encoding='utf-8') as f:
user_dic = json.load(f)
if user_dic:
print('用户已存在,请重新输入!')
continue
else:
#3)若用户存在,则让用户重新输入
#4)若用户不存在,则保存用户数据
#4.1)组织用户的数据的字典信息
user_dic = {
'username':username,
'password':password,
'balance':15000,
#flow:用于记录用户流水的列表
'flow':[],
#shop_car:用于记录用户购物车
'shop_car':{},
#locked:用于记录用户是否被冻结,False:未冻结,True:冻结
'locked':False
}
import json
import os
from conf import settings
#存不是目的,取才是数据,所以文件名:用户名.json 用户数据:robin.json;矮跟.json......
#4.2)拼接用户的json文件路径
user_path = os.path.join(settings.USER_DATA_PATH,f'{username}.json')
with open(user_path,'w',encoding='UTF-8') as f:
#ensure_ascii=False 可以让文件中的中文名称显示更美观
json.dump(user_dic,f,ensure_ascii=False)
#2、登陆功能
def loggin():
pass
#3、查看余额
def check_balance():
pass
#4、提现功能
def withdraw():
pass
#5、还款功能
def repay():
pass
#6、转账功能
def transfer():
pass
#7、查看流水
def check_flow():
pass
#8、购物功能
def shopping():
pass
#9、查看购物车
def check_shop_car():
pass
#10、管理员功能
def admin():
pass
#创建函数功能字典
func_dic = {
'1':register,
'2':loggin,
'3':check_balance,
'4':withdraw,
'5':repay,
'6':transfer,
'7':check_flow,
'8':shopping,
'9':check_shop_car,
'10':admin,
}
#视图层主程序
def run():
while True:
print(
'''
=====ATM 购物商城=====
1、注册功能
2、登陆功能
3、查看余额
4、提现功能
5、还款功能
6、转账功能
7、查看流水
8、购物功能
9、查看购物车
10、管理员功能
===== END =====
''')
choice = input('请输入功能编号:').strip()
if choice not in func_dic:
print('请输入正确的功能编号')
continue
else:
func_dic.get(choice)()
四、conf(start.py模块:作为整个程序的启动模块,是使用程序的入口)
'''
程序的入口
'''
import sys
import os
#添加解释器的环境变量
sys.path.append(
os.path.dirname(__file__)
)
from core import src
#开始执行项目函数
if __name__ =='__main__':
#1、先执行用户视图层
src.run()

浙公网安备 33010602011771号