首页 > 其他分享 >Django自带的序列化组件

Django自带的序列化组件

时间:2022-12-12 16:58:14浏览次数:53  
标签:username obj gender age Django user pk 自带 序列化

Django自带的序列化组件(为drf做铺垫)

(drf:django rest framework)

#在前端获取到,后端用户表里所有的数据,并且是列表套字典的格式
# views.py

from django.http import JsonResponse

def ab_ser(request):
    user_queryset = models.User.objects.all()
    user_list = []
    for user_obj in user_queryset:
        tmp = {
            'pk': user_obj.pk,
            'username': user_obj.username,
            'age': user_obj.age,
            'gender': user_obj.get_gender_display()
        }
        user_list.append(tmp)
    return JsonResponse(user_list, safe=False)

前端显示结果:

image-20221103175900052

"""
[
  {"pk": 1,"username": "zhao","age": 19,"gender": "male"},
  {"pk": 2,"username": "lisi","age": 20,"gender": "female"},
  {"pk": 3,"username": "wangwu","age": 18,"gender": "others"},
  {"pk": 4,"username": "tony","age": 22,"gender": 4}
]

"""

前后端分离项目
	作为后端开发,只需要写代码将数据返回
    能够序列化返回给前端即可
    	再写一个接口文档,告诉前端每个字段代表的意思即可

借助于内置序列化模块serializers

from django.core import serializers


def ab_ser(request):
    user_queryset = models.User.objects.all()
    # user_list = []
    # for user_obj in user_queryset:
    #     tmp = {
    #         'pk': user_obj.pk,
    #         'username': user_obj.username,
    #         'age': user_obj.age,
    #         'gender': user_obj.get_gender_display()
    #     }
    #     user_list.append(tmp)
    # return JsonResponse(user_list, safe=False)

    # 序列化
    res = serializers.serialize('json', user_queryset)  # 自动将数据变成json格式的数据,并且内部非常的全面
    return HttpResponse(res)

效果:

[
  {
    "model": "app01.user",
    "pk": 1,
    "fields": {"username": "zhao","age": 19,"gender": 1}
  },
  {
    "model": "app01.user",
    "pk": 2,
    "fields": {"username": "lisi","age": 20,"gender": 2}
  },
  {
    "model": "app01.user",
    "pk": 3,
    "fields": {"username": "wangwu","age": 18,"gender": 3}
  },
  {
    "model": "app01.user",
    "pk": 4,
    "fields": {"username": "tony","age": 22,"gender": 4}
  }
]

#后端开发写接口就是利用序列化组件渲染数据,然后写一个接口文档,

image-20221104205336198

标签:username,obj,gender,age,Django,user,pk,自带,序列化
From: https://www.cnblogs.com/zaosong/p/16976483.html

相关文章

  • Django模型层
    模型层目录模型层1、测试脚本2、单表操作2.1、表准备2.2、操作2.3、常见13种单表查询方法3、Django终端打印SQL语句4、神奇的双下划线5、多表操作5.1、表准备5.2、一......
  • Django路由层
    路由层当⽤户在您的Web应⽤程序上发出⻚⾯请求时,Django会获取url中请求路径(端⼝之后的部分),然后通过urls.py⽂件查找与路径相匹配的视图,然后返回HTML响应或404未找到的错......
  • Django视图层
    视图层目录视图层1、三板斧2、JsonResponse对象3、form表单上传文件及后端如何操作4、request对象5、响应对象6、FBV与CBV视图响应的过程:当⽤户从浏览器发起⼀次请求时,......
  • Django框架
    目录(1)Django引入(2)Django基本操作(3)Django小白必会三板斧(4)静态文件配置(5)pycharm链接数据库(MySQL)(6)Django链接MySQL(7)Django的orm(8)Django请求周期流程图(重要)(9)Django路......
  • Django模版层
    模版层目录模版层1、模板语法传值2、过滤器3、模板语法之标签4、自定义过滤器,标签以及inclusion_tag5、模板的继承6、模板的导入1、模板语法传值变量相关:{{}}逻辑......
  • django基本操作
    目录1、命令行操作1.1.创建django项目1.2.启动django项目1.3.创建应用2、pycharm操作2.1.创建django项目2.2.启动django项目2.3.创建应用2.4.还可以修改端口号3、应......
  • Django小白必会三板斧
    """httpResponse 返回字符串render 返回html文件redirect 重定向returnredirect('https:www.baidu.com/')跳转别人的网址returnredirect('/ho......
  • Django链接MySQL
    Django链接MySQLdjango不能创建库,需要自己手动创建,并指定#默认用sqlite3DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','......
  • Django ORM
    DjangoORM目录DjangoORM1、创建模型表2、字段的增删改查2.1、字段的增加2.2、字段的修改2.3、字段的删除3、数据的增删改查3.1、查数据3.2、增加数据3.3、修......
  • 谷歌浏览器自带翻译用不了,用这个方法10秒恢复
    谷歌翻译突然用不了了2022经常使用Chrome浏览器的同学应该都发现了,这两天Chrome内置的谷歌翻译突然用不了了。如果访问Google翻译的中国站点(https://translate.google......