开发者社区> 问答> 正文

Django Rest Framework框架中的视图都可以继承哪些类?

Django Rest Framework框架中的视图都可以继承哪些类?

展开
收起
珍宝珠 2019-11-22 13:15:03 1817 0
1 条回答
写回答
取消 提交回答
  • a. 继承APIView(最原始)但定制性比较强
        这个类属于rest framework中的顶层类,内部帮助我们实现了只是基本功能:认证、权限、频率控制,
    但凡是数据库、分页等操作都需要手动去完成,比较原始。
        class GenericAPIView(APIView)
        def post(...):
              pass 
    
    b.继承GenericViewSet(ViewSetMixin,generics.GenericAPIView)
      首先他的路由就发生变化
        如果继承它之后,路由中的as_view需要填写对应关系
      在内部也帮助我们提供了一些方便的方法:
      get_queryset
      get_object
      get_serializer
      get_serializer_class
      get_serializer_context
      filter_queryset
    注意:要设置queryset字段,否则会抛出断言的异常。
    
    代码
    只提供增加功能 只继承GenericViewSet
    
    class TestView(GenericViewSet):
      serialazer_class = xxx
      def creat(self,*args,**kwargs):
        pass  # 获取数据并对数据
    
    c. 继承  modelviewset  --> 快速快发
        -ModelViewSet(增删改查全有+数据库操作)
        -mixins.CreateModelMixin(只有增),GenericViewSet
        -mixins.CreateModelMixin,DestroyModelMixin,GenericViewSet
      对数据库和分页等操作不用我们在编写,只需要继承相关类即可。
      
    示例:只提供增加功能
    class TestView(mixins.CreateModelMixin,GenericViewSet):
        serializer_class = XXXXXXX
    *** 
      modelviewset --> 快速开发,复杂点的genericview、apiview
    

    image.png

    2019-11-22 13:15:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ui-model,跨框架复用 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载