python学习day28笔记

序列化、反序列化

序列:字符串
序列化:将其他数据类型转为字符串
    
写文件必须是字符串或者是二进制形式
基于网络传输的数据必须是二进制

反序列化:将字符串转为其他数据类型的过程

json数据格式

json数据格式就是各个语言之间沟通的桥梁

json模块

支持的数据类型较少:
    字典、列表、元组->列表、整型、浮点型、字符串、布尔值

pickle模块

支持所有数据类型
只能在python间互通

使用序列化、反序列化

d = {'egon':'dsb'}

'''json使用方法类似str转化'''
序列化
res1 = json.jumps(d)  # 现在格式为字符串

反序列化
res2 = json.loads(res1)  # 现在格式又变成字典

如果数据内有中文,序列化后会显示出编码后内容,想显示中文需要在被转化数据后添加ensure_ascii=False
例:
res = {'username':'李洋'}
print(res,ensure_ascii=False)

'''pickle使用方法'''
序列化
res1 = pickle

项目

项目开发模式

1.瀑布模式:项目开发完毕再进行测试
2.敏捷开发:开发一部分,测试一部分
测试软件:禅道

瀑布模式

1.需求分析
2.程序设计或者架构设计
    程序设计:
        选型语言 python
        需求转为功能
    
    架构设计:
3.分工合作开发
4.测试:自测、专业测试
5.上线

ATM作业流程

处理环境变量

# 创建一个启动文件

import os,sys
path = os.path.dirname(__file__)
# path此时是总项目目录

sys.path -> # 显示当前环境
sys.path.append(path)
# 将当前文件夹加入环境变量

功能需求分析

# 先罗列出所有功能0.退出1.登录2.注册3.查看余额4.转账5.提现6.重置7.查看流水8.购物9.加入购物车

代码拆分

文件中有很多经常使用的代码,为了方便,将其拆分到各个py文件内变成模块
'''数据相关'''
import os,json
# 修改用户数据
def update(user_dict):  # 更新数据
    ATM_file = os.path.join(settings.ATM, 'db', '%s.json'%user_dict['username'])
    with open(ATM_file, mode='wt', encoding='utf-8')as f:
        json.dump(user_dict, f)
        f.flush() 
# 查询用户数据
def select(user_name):  # 查询数据
    ATM = settings.ATM
    ATM_file = os.path.join(ATM, 'db', f'{user_name}.json')
    if os.path.exists(ATM_file):
        with open(ATM_file,mode='rt',encoding='utf-8')as f:
            return json.load(f)
    else:
        return False
    
'''配置文件'''
import os
# 总项目路径
ATM = os.path.dirname(os.path.dirname(__file__))

登录功能实现

'''先写需求,按照顺序先后满足'''

1.判断用户是否已经登录
2.输入用户名
3.判断用户名是否存在
4.判断用户是否被冻结
5.输入密码
6.判断密码是否输入正确
7.输入正确则修改状态栏为已登录状态
8.输入密码错误达三次冻结该用户

注册功能实现

'''先写需求,按照顺序先后满足'''

1.输入用户名
2.判断用户名是否存在
3.输入密码,进行二次输入,判断二次输入是否一致
posted @ 2021-07-08 21:26  麋鹿的麋  阅读(47)  评论(0)    收藏  举报