目录 1.APIView 2.GenericAPIView:通用视图类 3.5个视图扩展类:ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin 4.GenericAPIView的视图子类:ListAPIView,CreateAPIView,RetrieveAPIView,UpdateAPIView,DestroyAPIView 5.视图集基类:ViewSet,GenericVi…
视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 2个视图基类 APIView rest_framework.views.APIView APIView是REST framework提供的所有视图的基类,继承自Django的View父类. APIView与View的不同之处在于: 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象: 视图方法…
DRF的视图 APIView Django中写CBV的时候继承的是View,rest_framework继承的是APIView, urlpatterns = [ url(r'^book$', BookView.as_view()), # url(r'^book/(?P<id>\d+)', BookEditView.as_view()), url(r'^book$', BookModelView.as_view({"get": "list", "…
在使用DRF视图集时,往往需要配一大堆路由,例如: # views.py class DepartmentViewSet(ListModelMixin,CreateModelMixin,RetrieveModelMixin, UpdateModelMixin,DestroyModelMixin,GenericViewSet): queryset = Department.objects.all() serializer_class = DepartmentSerializer # urls.py…
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…
rest框架包括一个处理viewset的抽象,允许开发人员集中精力处理api交互和建模,url构造都根据常见方式自动处理. ViewSet类 几乎和VIew类一样,不过它提供read,update这样的操作,而不是get,put. Refactoring to use ViewSets 现在来重构之前的view代码.首先把CourseList和CourseDetail重构为一个简单的CourseViewSet. from rest_framework import viewsets from .…
目录 视图家族 一.views视图类 1.APIView类 2.GenericAPIView类(generics中) 二.mixins类:视图辅助工具 1.RetrieveModelMixin 2.ListModelMixin 3.CreateModelMixin 4.UpdateModelMixin 5.DestroyModelMixin 三.generics类:包含辅助工具的通用视图类 四.viewsets视图集 1.作用 2.如何使用 3.ModelViewSet的不合理之处及解决方法 路…
五个扩展类 (1)ListModelMixin 列表视图扩展类,提供list(request, *args, **kwargs)方法快速实现列表视图,返回200状态码. 该Mixin的list方法会对数据进行过滤和分页. 源代码: class ListModelMixin(object): """ List a queryset. """ def list(self, request, *args, **kwargs): # 过滤 queryse…
2. 五个扩展类 1)ListModelMixin 列表视图扩展类,提供list(request, *args, **kwargs)方法快速实现列表视图,返回200状态码. 该Mixin的list方法会对数据进行过滤和分页. 源代码: class ListModelMixin(object): """ List a queryset. """ def list(self, request, *args, **kwargs): # 过滤 query…
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查询数据 # 反序列化post save() => create()(数据保存到数据库中) #添加 ser_obj = ModelSerializer(data=model_data) #传递data参数,保存数据 #反序列化put save() => update() #修改(需要传入instan…