DRF教程4-视图集和路由类】的更多相关文章

rest框架包括一个处理viewset的抽象,允许开发人员集中精力处理api交互和建模,url构造都根据常见方式自动处理. ViewSet类 几乎和VIew类一样,不过它提供read,update这样的操作,而不是get,put. Refactoring to use ViewSets 现在来重构之前的view代码.首先把CourseList和CourseDetail重构为一个简单的CourseViewSet. from rest_framework import viewsets from .…
Rewriting our API using class-based views 使用类视图重写root views,只需要一点点重构. from django.http import Http404 from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from .models import Course f…
Django Rest Feamework 视图和路由 DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢 urlpatterns = [ url(r'^book$', BookView.as_view()), url(r'^book/(?P<id>\d+)$', BookEditView.as_view()), ] 我们可以看到,不管是View还是APIView最开始调用的都是as_vi…
视图组件  -- 第一次封装   -- GenericAPIView(APIView):    queryset = None    serializer_class = None    def get_queryset(self):     return self.queryset.all()    def get_serializer(self, *args, **kwargs):     return self.serializer_class(*args, **kwargs)   --…
目录 一.DRF介绍 1. 什么是DRF 2. 为什么要用DRF (1)使用DRF的原因 (2)站在开发者的角度来说用DRF的好处(暂时列举这么多) 二.用DRF开发后端项目 三.APIView请求生命周期 四.源码的dispatch中的方法 1. dispatch中的功能模块 (1)请求模块 (2)解析模块 (3)响应模块 (4)渲染模块 (5)异常模块 一.DRF介绍 1. 什么是DRF DRF就是django框架的一个插件或者说是django的一个工具包,用于在Web后台构建Restful…
前端于对数据操作的请求基本上就分为四类:增删改查,即增加.删除.修改.查询. 而DRF把前端请求分为两个大类:带ID参数请求和不带ID参数请求. 不带ID参数请求包括:增加.分布多条查询 带ID参数请求包括:删除.修改.单条查询 DRF针对这五类需求,分别提供了五个扩展类来支持,叫Mixin扩展类. GenericAPIView继承自APIView,主要增加了操作序列化器和数据查询的方法.作用是为Mixin扩展类执行提供方法支持.通常在使用时,可搭配一个或多个Mixin扩展类. 找到并打开App…
DRF 的视图,路由和渲染器 1 视图 简单的增删改查 : ModelViewSet; 复杂的操作使用APIView 和 GenericViewSet APIView(View) class HomeView(APIView): def get(self,request,*args,**kwargs): user_list = UserInfo.objects.all() ser = IndexSerializer(user_list,many=True) return Response(ser…
视图和路由 1.创建一个django_test应用 2.setting中设置django_test INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_test.apps.D…
1, 序列化 Serialization 创建一个新环境 在做其他事之前,我们会用virtualenv创建一个新的虚拟环境.这将确保我们的包配置与我们正在工作的其他项目完全隔离. virtualenv env # 创建虚拟环境,命名: env source env/bin/activate # 进入虚拟环境env 既然我们已经在虚拟环境中,那么我们就可以安装我们依赖的包了. pip install django pip install djangorestframework pip instal…
DRF中的Request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别于Django中的request从request.GET中获取URL参数,从request.POST中取某些情况下的POST数据. 在APIView中封装的request,就实现了请求数据的解析: 对于GET请求的参数我们通过request.query_params来获取. 对于POST请求.PUT请求的…