当前位置: 首页 > news >正文

必知必会:使用serializers.Serializer在views.py视图文件中序列化和反序列化过程的开发模板

from django.views import Viewclass ProjectTestView(View):"""a.获取所有数据b.创建一条数据"""def get(self, request):"""序列化输出到前端的过程规则:a.创建模型对象b.将上面已创建好的的模型对象传递给序列化器类的instance属性,多个对象必须传递many=Truec.通过return JsonResponse(使用序列化器对象.data将序列化之后的数据返回给前端)"""projects = Project_t.objects.all()serializer = serializerstest.ProjectSerializer(instance=projects, many=True)return JsonResponse(serializer.data, safe=False, json_dumps_params={'ensure_ascii':False})def post(self, request):"""反序列化输入的过程规则:1.将前端传递的数据,转化为字典类型数据2.创建序列化器对象,data传递的参数为待校验的字典数据3.必须调用序列化器对象.is_valid()方法,对数据进行校验,序列化器对象.validated_data属性为校验通过的数据4.进行数据入库操作,模型对象数据创建:模型类.objects.create(**序列化器对象.validated_data)5.返回到前端:a.将上面已创建好的的模型对象传递给序列化器类的instance属性,多个对象必须传递many=Trueb.通过return JsonResponse(使用序列化器对象.data将序列化之后的数据返回给前端)"""data = {'code': 0,'msg': ''}request_dict = json.loads(request.body.decode('utf-8'))serializer = serializerstest.ProjectSerializer(data=request_dict)if serializer.is_valid(raise_exception=True):project_obj = Project_t.objects.create(**serializer.validated_data)serial = serializerstest.ProjectSerializer(instance=project_obj)return JsonResponse(serial.data, status=200, json_dumps_params={'ensure_ascii': False})data['code'] = 1data['msg'] = '参数有误'return JsonResponse(data, status=400, json_dumps_params={'ensure_ascii': False})
http://www.wxhsa.cn/company.asp?id=2828

相关文章:

  • Cursor小程序实战五:Cursor对接微信两大核心问题
  • 电商系统的Mysql表设计是怎么样呢
  • Docker应用 - CloudSaver
  • SQL查找是否存在,别再count了! - DAYTOY
  • Cursor小程序实战系列二:如何从原型界面到小程序界面
  • Cursor小程序实战系列三: 前后端对接保姆级拆解
  • 课前问题思考2
  • Cursor小程序实战四:如何让AI写好后端代码
  • Web 3
  • Cursor小程序实战系列一:0到1开发一个小程序,需求整理、小程序注册备案
  • 深入解析:MySQL 数据类型与运算符详解
  • 【前端Vue】如何优雅地在vue中引入ace-editor编辑器 - 指南
  • USACO08 OPEN Roads Around the Farm S (递归)
  • JavaScript生成随机数的方法
  • LiveOS 的制作简介
  • .gitignore 文件
  • 目标检测 | 基于Weiler–Atherton算法的IoU求解
  • 对比Java学习Go——函数、集合和OOP
  • MySQL集群高可用架构 - 指南
  • 【WRF-VPRM 预处理器】HEG 安装(服务器)-MRT专业的工具替代
  • 如何在Spring MVC中处理请求参数
  • redis实现缓存2-解决缓存穿透,缓存击穿
  • 单克隆抗体人源化:从鼠源缺陷到全人源突破,3 大阶段破解临床应用难题
  • 在Kubernetes中DaemonSet无法在master节点调度的问题
  • 9 12-
  • 桌面客户端的主要类型和技术方案
  • AGX Orin平台RTC驱动导致reboot系统卡住障碍调试
  • C 语言实现动态数组、链表、栈与队列
  • git reset
  • ICPC 2025 网络赛第一场 M