viewsets :from rest_framework import viewsets  #导入方式
ViewSetMixin(object):
这个类,大致作用就是重写了as_view()方法,假如你写的视图类,继承了这个类,或者它的子类,那么在视图层里的as_view方法可以传参数。
但是呢,你要是单单继承这个类的话,程序是会报错的,虽然这个类中写了as_view方法,但是这个方法的返回值是dispatch方法的内存地址,而
ViewSetMixin这个类中没有dispatch方法,它的基类也更没有。除非你在你的视图类中写一个dispatch方法,并实现相应功能,但是这样太麻烦,
下面介绍的这个类可以实现这个类的不足。 ViewSet(ViewSetMixin, views.APIView):
这个ViewSet类继承了ViewSetMixin,APIView,那么就不用再担心没有dispatch方法了。这里就充分体现了面向对象的继承。这个类下面没有写
任何代码,就一个pass。那么我们在视图类中也可以不用继承ViewSet这个类,自己继承ViewSetMixin, views.APIView,这里必须提醒,在py3
中,只有新式类,都继承object类,所以这个属性的查找顺序遵循深度优先,为何提醒这个呢?你看你把APIView写在ViewSetMixin之前,那么执
行as_view方法,便会先从APIView找该方法,没有的话便会从APIView基类查找,很肯定View方法中肯定有as_view,所以便会执行这个as_view
方法,但是你原本是想用ViewSetMixin它的as_view方法,并且传了参数,所以这样会出错! 下面还有一些类,无非就是在ViewSet基础上继承了更多的类,达到代码简化,这样的话虽说是能减少代码量,但是扩展性呢? GenericViewSet(ViewSetMixin, generics.GenericAPIView): ReadOnlyModelViewSet(mixins.RetrieveModelMixin,mixins.ListModelMixin,GenericViewSet): class ModelViewSet(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet): 这就是viewsets下面的几个类,我觉得继承ViewSet这个方法就可以了。

rest_framework --- viewsets的更多相关文章

  1. Django-rest-framework 接口实现 rest_framework 中有已经定义好的 工具类 mixins generics viewsets

    rest_framework.mixins 请求业务 的 5 种实现 ​ mixin(混合类):不能单独使用,和其它类搭配起来使用(利用了Python支持多继承) rest_framework.mix ...

  2. Rest_framework Router 路由器(含SimplyRouter源码浅解)

    目录 Rest_framework Router 路由器 ViewSet结合Router,自动生成url. 将ViewSet注册到Router中,需要三个要素: 关于路由规则,细分有四类: rest_ ...

  3. rest_framework之视图及源码剖析

    最初形态(工作中可能会使用) 引子 Django的CBV我们应该都有所了解及使用,大体概括一下就是通过定义类并在类中定义get post put delete等对应于请求方法的方法,当请求来的时候会自 ...

  4. rest_framework中视图相关

    模型类的定义 # 定义图书模型类BookInfo class BookInfo(models.Model): btitle = models.CharField(max_length=20, verb ...

  5. python框架之Django(14)-rest_framework模块

    APIView django原生View post请求 from django.shortcuts import render, HttpResponse from django import vie ...

  6. rest_framework视图和组件

    一.视图 1.基本视图 #基本视图 #抽取基类 from rest_framework.response import Response from rest_framework.views impor ...

  7. rest_framework 之视图

    1. 继承ModelSerilizer,直接指定要序列化的表模型 MySerializers.py from app import models # 继承ModelSerilizer,直接指定要序列化 ...

  8. Rest_framework 和路由配置(一)

    简介 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用. Rest_framework 核心思想: 缩减代码. ...

  9. (转)一个简单的rest_framework demo

    转发:https://www.cnblogs.com/fu-yong/p/9100559.html models.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from ...

随机推荐

  1. node.js异步编程解决方案之Promise用法

    node.js异步编程解决方案之Promise var dbBase = require('../db/db_base'); var school_info_db = require('../db/s ...

  2. 归并排序——Java实现

    一.排序思想 将两个或两个以上的一排序文件合并成一个有序文件的过程叫归并,而归并排序就是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用.将以有序的了序列合并,得到完全有序 ...

  3. python 之闭包

    原文 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): a ...

  4. struts2的基本配置

    1.package标签下主要的点在namespace和name,extend上 extend 一般继承自struts-default.xml下,继承其拦截器及一些功能,这个已在本人的拦截器一文中有讲到 ...

  5. 关于Java中用Double型运算时精度丢失的问题

    注:转自 https://blog.csdn.net/bleach_kids/article/details/49129943 在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在 ...

  6. 堆(Heap)的实现

    这次实现了堆,这个堆不是指系统堆栈的堆,是一种数据结构,见下图 堆的本质就是一个数组(上图中,红色的是值,黑色的是下标)简单的来说就是把一个数组看成是二叉树,就像上图 大堆和小堆分别是指根节点比孩子节 ...

  7. ThreadPoolExecutor实现原理

    转载:https://blog.csdn.net/yanyan19880509/article/details/52718497 前言 做java开发的,一般都避免不了要面对java线程池技术,像to ...

  8. qt打开url

    QDesktopServices::openUrl(QUrl(QLatin1String(“http://blog.const.net.cn“)))

  9. wxpython 对话框

    . 消息对话框(wx.MessageDialog) 消息对话框 与用户通信最基本的机制是wx.MessageDialog,它是一个简单的提示框. wx.MessageDialog可用作一个简单的OK框 ...

  10. hibernate 一览表