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

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

0014 基于DRF框架开发(02 基类视图 GenericAPIView)的更多相关文章

  1. 0013 基于DRF框架开发(01 基类视图 APIView)

    之前学习了模型序列化和普通序列化,我们用最简单的视图和url实现了对序列化的操作. 而实际上,象之前那种由DRF自动生成所有的视图和url的情况,在应用是使用很少.而需要用户根据实际业务需求,自定义视 ...

  2. 0009 基于DRF框架开发(02 创建模型)

    上一节介绍了DRF开发的基本流程,共五个步骤: 1 创建模型 2 创建序列化器 3 编写视图 4 配置URL 5 运行测试 本节主要讲解创建模型. 构建学校,教师,学生三个模型,这三个模型之间的关系是 ...

  3. 0010 基于DRF框架开发(03 模型序列化器)

    序列化器:是指从数据库提取数据,转化前端所需要的数据格式并返回到前端. 反序列化器:是指把前端传回的数据,转换成数据库需要的格式,存入数据库. DRF提供了两种序列化器: 模型序列化器:是指和模型关联 ...

  4. 0008 基于DRF框架开发(01 DRF开发的基本流程)

    1 创建模型 由于之前在<004 工程配置>中,已在Applications/Organizations/models中创建了一个UserInfo模型.此处引用这个模型. from dja ...

  5. 0012 基于DRF框架开发(04 序列化器的字段与选项)

    1 常用字段类型 字段 构造方式 BooleanField BooleanField() NullBooleanField NullBooleanField() CharField CharField ...

  6. 0011 基于DRF框架开发(04 普通序列化器)

    普通序列化器和模型无关,只是对针对提交字段的定义. 本文定义三个序列化器: 教师序列化器,学生序列化器,教师学生序列化器.这三个序列化器都使用普通序列化器. 1 教师序列化器 在Application ...

  7. 基于SSH框架开发的《高校大学生选课系统》的质量属性的实现

    基于SSH框架开发的<高校大学生选课系统>的质量属性的实现 对于可用性采取的是错误预防战术,即阻止错误演变为故障:在本系统主要体现在以下两个方面:(1)对于学生登录模块,由于初次登陆,学生 ...

  8. MapReduce教程(一)基于MapReduce框架开发<转>

    1 MapReduce编程 1.1 MapReduce简介 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,用于解决海量数据的计算问题. MapReduce分成了两个部分: ...

  9. drf框架serializers中ModelSerializer类简化序列化和反序列化操作

    0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11 ...

随机推荐

  1. nginx设置域名转发到指定端口

    1.修改nginx.conf文件,将worker_processes  1 修改为  worker_processes  auto 2.创建端口代理配置文件(域名地址如:xx.baidu.com , ...

  2. css3 动画 示例

    /* animation */ .a-bounce,.a-flip,.a-flash,.a-shake,.a-swing,.a-wobble,.a-ring{-webkit-animation:1s ...

  3. 使用mysqlfrm恢复frm表结构的方法

    1.mysqlfrm安装 由于mysqlfrm是mysql-utilities工具一部分,那么我们安装mysql-utilities即可,下载好对应的源码包,进行编译安装 shell> wget ...

  4. 使用ASDM 管理 ciscoASA设备

    用vm虚拟机模拟了一台 ASA设备   自适应安全设备软件为 ASA8.25  asdm镜像为asdm-6.49.bin 用客户端连接时,一定要安装java  jre,版本我是用的是7,6应该也可以. ...

  5. win7下彻底卸载和重装mysql

    1 .目的:第一次安装完mysql后忘记了临时密码,通过各种途径都无法更改密码,因此不得不把mysql卸载了. 2 .建议:第一次安装mysql时会分配一个临时密码,如最后一行的se_:j<tq ...

  6. [MSSQL]xp_cmdshell 查看磁盘空间

    EXEC xp_cmdshell 'wmic logicaldisk get freespace,caption | findstr C'; <class 'pyodbc.Row'> (' ...

  7. vue 的点击事件怎么获取当前点击的元素

    手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元   首先 vue的点击事件 是用 @cl ...

  8. WannaMine4.0查杀方法

    病毒现象 扫描爆破内网基于445端口的SMB服务 服务器出现卡顿.蓝屏 服务器主动访问恶意域名:totonm.com.cake.pilutce.com:443 病毒处置 删除关键病毒文件:C:\Win ...

  9. clr via c# 运行时序列化

    1,快速了解序列化----windows IO 系统,FileStream,BinaryFormatter,SoapFormatter--不支持泛型. public class SerializeRe ...

  10. opencv —— findContours、drawContours 寻找并绘制轮廓

    轮廓图像与 Canny 图像的区别 一个轮廓一般对应一系列的点,也就是图像中的一条曲线.轮廓图像和 Canny 图像乍看起来表现几乎是一致的,但其实组成两者的数据结构差别很大: Canny 边缘图像是 ...