码迷,mamicode.com
首页 > 其他好文 > 详细

Django-rest Framework(六)

时间:2019-11-24 13:37:12      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:lookup   list   渲染   字典   建立   update   serial   mod   ret   

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

视图家族

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'}))
    ]
    
    

Django-rest Framework(六)

标签:lookup   list   渲染   字典   建立   update   serial   mod   ret   

原文地址:https://www.cnblogs.com/kuck/p/11921941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!