• Django项目总结:REST Framework APIView源码分析


    APIView源码分析

    • 子类
      • generics包中
      • GenericAPIView
        • 增加的模型的获取操作
        • get_queryset
        • get_object
          • lookup_field 默认pk
        • get_serializer
        • get_serializer_class
        • get_serializer_context
        • filter_queryset
        • paginator
        • paginate_queryset
        • get_paginated_response
      • CreateAPIView
        • 创建的类视图
        • 继承自GenericAPIView
        • 继承自CreateModelMixin
        • 实现了post进行创建
      • ListAPIView
        • 列表的类视图
        • 继承自GenericAPIView
        • 继承自ListModelMixin
        • 实现了get
      • RetrieveAPIView
        • 查询单个数据的类视图
        • 继承自GenericAPIView
        • 继承自RetrieveModelMixin
        • 实现了get 
      • DestroyAPIView
        • 销毁数据的类视图,删除数据的类视图
        • 继承自GenericAPIView
        • 继承自DestroyModelMixin
        • 实现了delete
      • UpdateAPIView
        • 更新数据的类视图
        • 继承自GenericAPIView
        • 继承自UpdateModelMixin
        • 实现了 put,patch
      • ListCreateAPIView
        • 获取列表数据,创建数据的类视图
        • 继承自GenericAPIView
        • 继承自ListModelMixin
        • 继承自CreateModelMixin
        • 实现了 get,post
      • RetrieveUpdateAPIView
        • 获取单个数据,更新单个数据的类视图
        • 继承自GenericAPIView
        • 继承自RetrieveModelMixin
        • 继承自UpdateModelMixin
        • 实现了 get, put, patch
      • RetrieveDestroyAPIView
        • 获取单个数据,删除单个数据
        • 继承自GenericAPIView
        • 继承自RetrieveModelMixin
        • 继承自DestroyModelMixin
        • 实现了 get, delete
      • RetrieveUpdateDestroyAPIView
        • 获取单个数据,更新单个数据,删除单个数据的类视图
        • 继承自GenericAPIView
        • 继承自RetrieveModelMixin
        • 继承自UpdateModelMixin
        • 继承自DestroyModelMixin
        • 实现了 get, put, patch, delete
    • mixins
      • CreateModelMixin
        • create
        • perform_create
        • get_success_headers
      • ListModelMixin
        • list
          • 查询结果集,添加分页,帮你序列化
      • RetrieveModelMixin
        • retrieve
          • 获取单个对象并进行序列化
      • DestroyModelMixin
        • destroy
          • 获取单个对象
          • 调用执行删除
          • 返回Respon 状态码204
        • perform_destroy
          • 默认是模型的delete
          • 如果说数据的逻辑删除
            • 重写进行保存
      • UpdateModelMixin
        • update
          • 获取对象,合法验证
          • 执行更新
        • perform_update
        • partial_update
          • 差量更新,对应的就是patch
    • viewsets
      • ViewSetMixin
        • 重写as_view
      • GenericViewSet
        • 继承自GenericAPIView
        • 继承自ViewSetMixin
      • ViewSet
        • 继承自APIView
        • 继承自ViewSetMixin
        • 默认什么都不支持,需要自己手动实现
      • ReadOnlyModelViewSet
        • 只读的模型的视图集合
        • 继承自RetrieveModelMixin
        • 继承自ListModelMixin
        • 继承自GenericViewSet
      • ModelViewSet
        • 直接封装对象的所有操作
        • 继承自GenericViewSet
        • 继承自CreateModelMixin
        • 继承自RetrieveModelMixin
        • 继承自UpdateModelMixin
        • 继承自DestroyModelMixin
        • 继承自ListModelMixin

     

  • 相关阅读:
    Java openrasp学习记录(一)
    Java ASM3学习(3)
    Java ASM3学习(2)
    Java Instrumentation插桩技术学习
    Java ASM3学习(1)
    从JDK源码学习HashSet和HashTable
    从JDK源码学习HashMap
    从JDK源码学习ArrayList
    Java XXE漏洞典型场景分析
    CVE-2020-7961 Liferay Portal 复现分析
  • 原文地址:https://www.cnblogs.com/dc2019/p/13472748.html
Copyright © 2020-2023  润新知