zoukankan      html  css  js  c++  java
  • Django-rest Framework(六)

    不懂使用机制的直接看源码就好了,也不是很难,能够看得懂

    视图家族

    1. View:将请求方式与视图类的同名方法建立映射,完成请求响应(原生django)

    from django.views import View
    

    2. APIView(rest_framework)

    from rest_framework.views import View
    
    1. 继承View ,具有View的所有功能
    2. 重写as_views禁用csrf认证
    3. 重写了dispatch:请求 响应 渲染 异常 解析 三大认证
    4. 多了一堆类属性,可以完成视图类的局部配置

    3. GenricAPIView

    from rest_framework.generics import GenericAPIView
    
    1. 继承APIView的所有功能
    2. 三个方法: get_object() get_queryset() get_serializer()
    3. 三个属性: queryset serializer_class lookup_urk_kwarg

    4. mixins包:

    from rest_framework import mixins
    from rest_framework.mixins import CreateModelMixin,UpdateModelMixin,RetrieveModelMixin,ListModelMixin,DestroyModelMixin
    
    1. 五大工具类 : RetrieveModelMixin , ListModelMixin, CreateModelMixin, UpdateModelMixin, DestroyModelMixin
    2. 六大工具方法: retrieve, list, create, update, partial_update, destroy

    5. generics包

    from rest_framework import generics
    
    1. 一堆mixins工具类与GenericAPIView视图基类组合

    6. ModelViewSet

    1. 视图集,继承了mixins所有的类 和 GenericAPIView所有的方法

    2. 使用:

      #在view.py中
      	from rest_framework.viewsets import ModelViewSet
          class CarAPIView(ModelViewSet):
              queryset = models.car.objects.all()
              serializer_class = Serializers.CarSerializer
      #在urls.py中(这里的car只是用来做例子)
      	urlpatterns = [
              
      	#以什么方式请求,就要在字典中,写上请求方式和请求的函数              
          url(r'^car/$',views.CarAPIView.as_view({'get':'list','post':'create'})),
          url(r'^car/(?P<pk>d+)',views.CarAPIView.as_view({'get':'retrieve','put':'update','patch':'partial_update'}))
      ]
      
      
      
  • 相关阅读:
    FPGA-中值滤波
    FPGA-中值滤波
    FPGA-shift_ram代码
    FPGA实现-shift_ram_3x3矩阵实现
    图像处理-中值滤波
    python-str
    ignore-certificate-errors(chrome)
    selenium-python-Cookie跳过登录验证码
    Angular2
    Angular2
  • 原文地址:https://www.cnblogs.com/kuck/p/11921941.html
Copyright © 2011-2022 走看看