23.Django_基础阶段综合演练总结

设计总结

  1. 校验用户数据
    例如传入参数是否存在,格式是否正确,是否可重复等判断;
  2. 将前端传入的请求数据转换(json格式)转换为模型类对象;反序列化;
    • 反序列化:
      将格式如json,xml转换为程序中的类型;
      将json格式的字符串转换为Django中的模型类对象;
         #1. 先将json格式数据转换为嵌套字典列表
		json_data = request.body.decode('utf-8')
        python_data= json.loads(json_data,encoding='utf-8')
        #2.将字典转换为模型类对象
        project = Projects.objects.create(**python_data)      
  1. 操作数据库;
  2. 将模型类对象转换为响应的数据(json格式)
    • 序列化:
      将程序中的类型转换为json,xml;
      Django中的模型类对象转换为json格式的字符串;
#将其余数据格式转为前端需要的json数据类型
return JsonResponse(one_dict, safe=False)

1. 序列化

首先思考下:内存中的字典、列表、集合以及各种对象,如何保存到一个文件中?

  1. 设计一套协议,按照某种规则,把内存中的数据保存到文件中,文件是一个个字节序列。所以必须把数据额转换为字节序列,输出到文件,这就是序列化,反之,从文件的字节 序列恢复到内存中,就是反序列化。
  2. 反序列化则相反
    序列化在Json中:
  3. json().dump:把数据转成json格式字符串并写入文件
  4. json().dumps:读取文件数据,并转成json格式字符串

2.增删改查的步骤


  • 校验请求参数 -> 反序列化查询到的数据 -> 保存数据 -> 将保存的对象序列化并返回

  • 判断要删除的数据是否存在 -> 执行数据删除

  • 判断要修改的数据是否存在 -> 校验请求参数 -> 反序列化查询到的数据 -> 保存数据 -> 将保存的数据序列号并返回

  • 查询数据库 -> 将查询到的数据序列化并返回

痛点

  • 代码冗余极其严重,不符合优开发风格(代码能少写就少写)
  • 数据校验非常麻烦,且可复用性差
  • 编码没有统一的规范,杂乱无章的感觉
  • 仅支持json格式的传参,不支持form表单传参
  • 仅能返回json格式的数据,其他类型不支持
  • 列表页视图没有分页,过滤,排序功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值