DRF_lzy

选项

  • read_only:表明该字段仅用于序列化输出,默认False;==反序列化时可以不传递,如主键id==

  • required:表明该字段在反序列化时必须输入,默认True;==,反序列化必须要传递, 除非设置了default |

False | read_only==

  • many: 如果关联的对象数据不是只有一个,而是包含多个数据,如想序列化图书BookInfo数据,每个BookInfo对象关联的英雄HeroInfo对象可能有多个,此时关联字段类型的指明仍可使用上述几种方式,只是在声明关联字段时,多补充一个many=True参数即可。

class BookInfoSerializer(serializers.Serializer):

    """图书数据序列化器"""

    ...

    heroinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)

二级视图GenericAPIView

  • GenericAPIView,继承自APIView

  • GenericAPIView与一个或多个组合使用

  • 为标准列表和详细视图,添加了常用的行为,和属性

    属性:

(类)属性 | 作用

---|---

serializer_class | 指定通过序列化器

queryset | 指定通用的数据集

lookup_field | 默认是"pk"(url路径参数),用来获取单个对象

lookup_url_kwarg | 查询单一数据时URL中的参数关键字名称,默认与look_field相同

方法(行为) | 作用

---|---

get_queryse | 获取queryset数据集

get_serializer | 获取序列化器对象

get_serializer_class | 获取序列化器(类)

get_object | 根据lookup_field("pk"参数),获取单个对象

三级视图


三级视图特点: 已经提供好了通用功能(get,post...等等),除非有特殊的行为,可以重写

三级视图名称          父类                                  方法          作用

ListAPIView        GenericAPIView,ListModelMixin      get          获取所有数据

CreateAPIView      GenericAPIView,CreateModelMixin    post        创建单个数据

RetrieveAPIView    GenericAPIView,RetrieveModelMixin  get          获取单个数据

DestroyAPIView      GenericAPIView,DestroyModelMixin    delete      删除单个数据

UpdateAPIView      GenericAPIView,UpdateModelMixin    put          修改单个数据

视图集

  • 特点

    • 在一个类中, 组合多个功能(比如: 可以将获取所有, 获取单个写在一个视图)

    • 路由,必须使用映射形式({get:'list','post':'create'})


视图集名称                父类                        功能

ViewSet                ViewSetMixin,APIView        路由要映射编写

GenericViewSet          GenericAPIView              作用也与GenericAPIVIew类似,提供了get_object、get_queryset等方法

ModelViewSet            GenericAPIView,5个mixin类  增删改查全部功能

ReadOnlyModelViewSet    GenericAPIView,2个mixin类  获取单个,所有功能

你可能感兴趣的:(DRF_lzy)