前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django-DRF | ModelSerializer 序列化

Django-DRF | ModelSerializer 序列化

作者头像
小团子
发布2020-01-16 11:09:55
9110
发布2020-01-16 11:09:55
举报
文章被收录于专栏:数据云团数据云团

Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

一、序列化组件

① 使用 drf 的序列化组件:

  • 新建一个序列化类继承 Serializer
  • 在类中写需要序列化的字段

② 在视图中使用序列化的类:

  • 实例化需要序列化的类产生对象,在生成对象时,传入需要序列化的对象(queryset)
  • 对象.data
  • return Response(对象.data)
代码语言:javascript
复制
from rest_framework import serializers
class AuthorsSerializer(serializers.Serializer):
    name = serializers.CharField()
    age = serializers.CharField()
 

class BookSerializer(serializers.Serializer):
     # 返回所有作者信息
     authors = serializers.SerializerMethodField()
     def get_authors(self, obj):
         # 定义一个AuthorsSerializer序列化组件进行序列化
         # 这里的obj是一个book对象,所以通过跨表查询obj.authors.all()获取所有的作者,因为有多个作者,这里要指定many=True
         authors = AuthorsSerializer(obj.authors.all(), many=True)
         return authors.data

二、ModelSerializers 指定表模型

ModelSerializer 类与常规 Serializer 类相同,不同之处在于:

  • 会根据模型自动生成一组字段。
  • 会自动为序列化类生成验证器,例如 unique_together 验证器。
  • 包含 .create() 和 .update() 的简单默认实现。

序列化类能够生成一个表示字符串,可以检查其字段的状态。在使用 ModelSerializer 时,只需要确定创建哪些字段和验证器。

代码语言:javascript
复制
class BookSerializer(serializers.ModelSerializer): 

    class Meta: 
        model = Book 
        # 获取指定的字段 fields = ('id','name') 
        # 获取所有的字段 
        fields = ('__all__') 
        # 深度是1,会自动获取所有的需要跨表的信息,1代表跨一张表,官方建议不要超过10,建议不要超过3
        depth = 1 
        # 获取所有除了列出的字段,不能跟fields同时使用 
        # exclude=['name',]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档