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,也就是说,完成五个前端的基本请求,只需要配置两个路由。

  • 相关阅读:
    PHP培训教程 PHP里10个鲜为人知但却非常有用的函数
    跟我学Spring Boot(一)创建Spring Boot 项目
    android 4.0 webview 无法播放视频
    vs2008 安装部署 启动项
    android 使用webview 加载网页
    hbase 无法打开60010网页
    oracle 提示没有监听
    hbase 基本命令
    hbase 单机版安装
    win7 64位远程连接oracle11g64位
  • 原文地址:https://www.cnblogs.com/dorian/p/12377118.html
Copyright © 2011-2022 走看看