rest_framework --- viewsets
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的更多相关文章
- Django-rest-framework 接口实现 rest_framework 中有已经定义好的 工具类 mixins generics viewsets
rest_framework.mixins 请求业务 的 5 种实现 mixin(混合类):不能单独使用,和其它类搭配起来使用(利用了Python支持多继承) rest_framework.mix ...
- Rest_framework Router 路由器(含SimplyRouter源码浅解)
目录 Rest_framework Router 路由器 ViewSet结合Router,自动生成url. 将ViewSet注册到Router中,需要三个要素: 关于路由规则,细分有四类: rest_ ...
- rest_framework之视图及源码剖析
最初形态(工作中可能会使用) 引子 Django的CBV我们应该都有所了解及使用,大体概括一下就是通过定义类并在类中定义get post put delete等对应于请求方法的方法,当请求来的时候会自 ...
- rest_framework中视图相关
模型类的定义 # 定义图书模型类BookInfo class BookInfo(models.Model): btitle = models.CharField(max_length=20, verb ...
- python框架之Django(14)-rest_framework模块
APIView django原生View post请求 from django.shortcuts import render, HttpResponse from django import vie ...
- rest_framework视图和组件
一.视图 1.基本视图 #基本视图 #抽取基类 from rest_framework.response import Response from rest_framework.views impor ...
- rest_framework 之视图
1. 继承ModelSerilizer,直接指定要序列化的表模型 MySerializers.py from app import models # 继承ModelSerilizer,直接指定要序列化 ...
- Rest_framework 和路由配置(一)
简介 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用. Rest_framework 核心思想: 缩减代码. ...
- (转)一个简单的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 ...
随机推荐
- HyperLink 控件
yperLink就是一个可以用后台代码控制生成的超链接 1,声明,创建 2,设定text 3,设定navigateurl 4,将他添加到某个容器中 为什么没有保留第一次添加的连接? l 按钮1:向pa ...
- node之log4js
log4js的配置文件: "log4js": { "appenders": { "out": { "type": &qu ...
- Wp及Windows应用商店程序Logo生成器
在开发wp或windows应用商店程序时,需要制作不同分辨率下的logo,往往不同分辨率下的logo仅仅是图片尺寸或图片的内边距不同,为了快速生成不同分辨率下的图片,减少工作量,于是就自己动手开发了个 ...
- jQuery二——属性操作、文档操作、位置属性
一.jquery的属性操作 jquery对象有它自己的属性和方法. 其中jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作. 1.html属性操作 是对htm ...
- caffe-windows之手写体数字识别例程mnist
caffe-windows之手写体数字识别例程mnist 一.训练测试网络模型 1.准备数据 Caffe不是直接处理原始数据的,而是由预处理程序将原始数据变换存储为LMDB格式,这种方式可以保持较高的 ...
- Swiper双向轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Qt之QSS(Q_PROPERTY-原始属性)
http://blog.csdn.net/liang19890820/article/details/51698536 版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者: ...
- wx.grid.Grid
# -*- coding: cp936 -*- import wx import wx.grid import wx.lib.gridmovers as gridmovers import pymss ...
- 面试题之----一次完整的HTTP请求过程
当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢? 以下过程仅是个人理解: 域名解析 --> 发起TCP的3次握手 --> ...
- 两种计算Java对象大小的方法
之前想研究一下unsafe类,碰巧在网上看到了这篇文章,觉得写得很好,就转载过来.原文出处是: http://blog.csdn.net/iter_zc/article/details/4182271 ...