zoukankan      html  css  js  c++  java
  • 0020 DRF框架开发(07 基类视图 GenericAPIView)

      前端于对数据操作的请求基本上就分为四类:增删改查,即增加、删除、修改、查询。

      而DRF把前端请求分为两个大类:带ID参数请求和不带ID参数请求。

      不带ID参数请求包括:增加、分布多条查询

      带ID参数请求包括:删除、修改、单条查询

      DRF针对这五类需求,分别提供了五个扩展类来支持,叫Mixin扩展类。

      GenericAPIView继承自APIView,主要增加了操作序列化器和数据查询的方法。作用是为Mixin扩展类执行提供方法支持。通常在使用时,可搭配一个或多个Mixin扩展类。

      找到并打开Applications/Examples/views下的Schools.py文件,在操作GenericAPIView时,首先要导入两个包:

    from rest_framework.generics import GenericAPIView
    from rest_framework import mixins

    1 不带ID参数请求

    class SchoolsGenericListView(GenericAPIView, mixins.ListModelMixin, mixins.CreateModelMixin):
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer
    
        def get(self, request):
            return self.list(request)
    
        def post(self, request):
            return self.create(request)
    

    2 带ID参数请求

    class SchoolsGenericDetailView(GenericAPIView, mixins.RetrieveModelMixin, mixins.UpdateModelMixin,
                                   mixins.DestroyModelMixin):
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer
    
        def get(self, request, pk):
            return self.retrieve(request, pk)
    
        def put(self, request, pk):
            return self.update(request, pk)
    
        def delete(self, request, pk):
            return self.destroy(request, pk)
    

    3 配置两个路由

      配置路由之前,需要先导入Schools.py包中的视图路径。

    path('SchoolsGenericList/', SchoolsGenericListView.as_view()),
    path('SchoolsGenericDetail/<int:pk>', SchoolsGenericDetailView.as_view()),
    

      

      通过两个基类视图APIView,GenericAPIView的学习,掌握url是否携带ID参数可把视图分为两类,分别对应不同的url,也就是说,完成五个前端的基本请求,只需要配置两个路由。

  • 相关阅读:
    测试管理工具
    测试用例--zy
    测试计划和测试用例
    测试用例
    软件测试基础
    异步任务 ---- django-celery
    图片验证码接口
    测试作业
    数据库原理
    HTTPS原理
  • 原文地址:https://www.cnblogs.com/dorian/p/12377118.html
Copyright © 2011-2022 走看看