zoukankan      html  css  js  c++  java
  • Django Rest framework后端接口框架,常用的子类视图

    一、子类视图有哪些

     DRF最高级别封装的子类视图一览(9个):

    视图作用方法父类
    ListAPIView 查询多条数据 get GenericAPIView ,ListModelMixin
    CreateAPIView 新增一条数据 post GenericAPIView ,CreateModelMixin
    ListCreateAPIView
    查询多条数据,或者新增一条数据  get,post

    GenericAPIView,ListModelMixin,CreateModelMixin

    RetrieveAPIView 查询一条数据 get GenericAPIView ,RetrieveModelMixin
    UpdateAPIView 修改一条数据 put,patch GenericAPIView ,UpdateModelMixin
    DestroyAPIView 删除一条数据 delete GenericAPIView ,DestroyModelMixin
    RetrieveDestroyAPIView
     查询或者删除一条数据  get, delete

    GenericAPIView,RetrieveModelMixin,DestroyModelMixin

    RetrieveUpdateAPIView 查询,更新一条数据 get,put,patch GenericAPIView ,RetrieveModelMixin ,UpdateModelMixin
    RetrieveUpdateDestroyAPIView 获取,更新,删除一条数据 get,put,patch,delete GenericAPIView
    RetrieveModelMixin UpdateModelMixin DestroyModelMixin

    二、5个扩展类:

    1. RetrieveModelMixin
    2. ListModelMixin
    3. CreateModelMixin
    4. DestroyModelMixin
    5. UpdateModelMixin

    三、子类视图源码

    查看一下子类视图的源码:(取其中一个ListCreateAPIView分析就行,其他类似

    class ListCreateAPIView(mixins.ListModelMixin,
                            mixins.CreateModelMixin,
                            GenericAPIView):
        """
        Concrete view for listing a queryset or creating a model instance.
        """
        def get(self, request, *args, **kwargs):
            return self.list(request, *args, **kwargs)
    
        def post(self, request, *args, **kwargs):
            return self.create(request, *args, **kwargs)

    发现子类视图中只是将GenericAPIView+5种扩展类组合,并封装一下,直接return回去

  • 相关阅读:
    有趣的面试题 11 单向链表
    CLR via C# 读书笔记 13 前台线程和后台线程
    c# 使用 new 操作符构造新对象中做了一些什么 (简单版)
    CLR via C# 读书笔记 11 何时使用线程或者线程池
    CLR via C# 读书笔记 31 一种单实例应用程序的实现(信号量)
    延时加载lazyload
    [评论]为什么中国的程序员技术偏低
    关于陈列设计和一些细节的体验
    滚动
    JavaScript 的 parseInt 取整
  • 原文地址:https://www.cnblogs.com/gcgc/p/12094987.html
Copyright © 2011-2022 走看看