6.16自我总结
功能介绍
程序功能介绍:
商品信息再读取修改买卖均已xlsx格式
且生成购物记录也按/用户名/购买时间.xlsx格式生成
账号密码输入错误三次按照时间进行冻结
用户信息已json格式保存
程序写的过程
先生成功能模块和运行模块
再写功能模块中用到的固定的文件目录全放在setting.py文件中
与商品交互全放在shop.py中
与用户交互全放在user.py中
一些返回界面延迟动画全放在辅助模块中
1.程序设计目录
思路
生成xlsx文档就要导入pands模块
用户信息用josn保存导入json模块
把路径什么通用不变的丢入setting中
把所有文件存取丢入接口层中api中
其他增减根据功能来
一些通用的方法可以全部放入common中
2.run.py
from core.src import run
if __name__ == '__main__':
run()
3.src.py
from conf.setting import *
from lib.common import *
from api.user import *
from api.shop import *
import re
import numpy as np
goods_count = [1]
#注册
def register():
print('\033[47;;m\t\t欢迎使用注册功能\t\t\033[0m')
count = 0
while count == 0:
register_name = input('请输入名字按Q退出程序\n'
'\033[31;;m账号由汉字,字母,数字,下划线组成\033[0m'
'\n请输入:')
if register_name == 'Q':
go_to_run()
return False
if decide_user_name(register_name):
print('\033[31;;m账号存在\033[0m')
continue
register_name_1 = re.findall('\w+',register_name)
if len(register_name) == 0:
print('\033[31;;m请好好输入\033[0m')
continue
elif register_name_1[0] != register_name:
print('\033[31;;m账号由汉字,字母,数字,下划线组成\033[0m')
continue
else:
count =1
while True:
register_pwd = input('请输入密码按Q退出程序\n'
'\033[31;;m密码由汉字,字母,数字,下划线组成\033[0m\n'
'请输入')
if register_pwd == 'Q':
go_to_run()
return False
register_pwd_1 = re.findall('\w+', register_pwd)
if len(register_pwd) == 0:
print('\033[31;;m请好好输入\033[0m')
continue
elif register_pwd_1[0] != register_pwd:
print('\033[31;;m密码由汉字,字母,数字,下划线组成\033[0m')
continue
else:
save_info(register_name, register_pwd)
print('\033[32;;m注册成功\033[0m')
go_to_run()
return True
#登入
def login():
print('\033[47;;m\t\t欢迎使用登入功能\t\t\033[0m')
if not LOGIN_NAME[0]:
pwd_count =0
login_count = 0
while login_count==0:
login_name = input('请输入名字按Q退出程序\n请输入:')
if login_name == 'Q':
go_to_run()
return False
if not decide_user_name(login_name):
print('\033[31;;m账号不存在\033[0m')
continue
if not load_freeze_user(login_name):
go_to_run()
return False
else:
login_count = 1
while pwd_count<3:
login_pwd = input('\033[41;;m请输入密码输错三次会被冻结五分钟\033[0m\n请输入:')
if not load_info(login_name,login_pwd):
pwd_count +=1
print(f'\033[31;;m还有{3-pwd_count}次机会\033[0m')
continue
else:
print('\033[32;;m登入成功\033[0m')
LOGIN_NAME[0] = login_name
go_to_run()
return True
if pwd_count == 3:
freeze_user(login_name)
print(f'\033[31;;m账号{login_name}由于密码输入太多次暂时被冻结\033[0m')
go_to_run()
return False
else:
print(f'\033[32;;m账号{LOGIN_NAME[0]}以及登入')
login_chiose = input('输入0为退出当前程序\n'
'输入1为退出当前账号重新登入\n'
'输入2为退出当前账号并退出程序\n'
'请选择:')
if login_chiose not in ['0','1','2']:
print('\033[31;;m请好好输入\033[0m')
elif login_chiose == '0':
go_to_run()
return False
elif login_chiose == '