Django基本视图
Django基本视图
下面这三个类也许不能提供项目所需的所有的功能,这些应用于基于类的视图或Mixins情形下。
大多数Django的内建视图继承于其他基于类的视图或者各种mixins中,因为继承链是很重要的。
View
class django.views.generic.base.View
这是基于类视图的主控类,所有的其他的基于类的视图都这个基类。严格来说他不是一个通用视图,但也可被导入。
Method Flowchart 方法流程图
1. dispatch()
3. options()
属性:
http_method_names
这个视图接受的HTTP方法名,默认为(get,post,put,patch,delete,head,options,trace)
方法:
classmethod as_view(**initkwargs)
返回一个可调用的视图,接受一个request,会返回一个response。
response=MyView.as_view()(request)
返回的view拥有view_class和view_initkwargs属性
在请求/响应的周期内,当这个视图被调用,HttpResquest被分配到这个View的request属性上。从URL pattern上捕获的任何位置或者关键字参数,将会被分配到args和kwargs属性上,之后ispatch()被调用。
dispatch(request,*args,**kwargs)
这个方法接收一个request参数以及其他参数,返回一个HTTP response。
这个方法的默认实现将会检查HTTP方法并尝试委托匹配该HTTP方法的方法。GET将会委托给get()方法。POST委托为post()。
默认情况下HEAD请求将会委托给get(),如果需要可以覆写。
http_method_not_allowed(request, *args, **kwargs)
如果一个HTTP方法不被支持,该方法将会被调用,默认实现是返回一个HttpResponseNotAllowed。
options(request, *args, **kwargs)
处理这针对OPTIONS HTTP verb的请求的相应,返回一个响应,允许头部包含视图允许的HTTP方法名的列表。
TemplateView
class django.views.generic.base.TemplateView
渲染一个给定的模板,并伴随一个上下文,包含了从URL中捕获的参数。
这个视图继承的方法和属性来自下面这些视图:
django.views.generic.base,TemplateResponseMixin
django.views.generic.base.ContextMixin
django.views.generic.base.View
Method Flowchart 方法流程图
1. dispatch()
从URL pattern捕获的关键字参数进行填充(通过ContextMixin)
你也可以extra_context关键字为这个as_view添加上下文。
RedirectView
class django.views.generic.base.RedirectView
重定向给定的URL。
这个给定的URL可能包含字典样式的格式化字符串,从URL上捕获的参数将据此进行插入。因为关键字插入总是要做的,即使没有参数被传入。在URL中的任何%字符必须写成%%,以便能够输出单个%。
这个视图继承的方法和属性来自以下视图:
django.views.generic.base.View
Method Flowchart 方法流程图
1. dispatch()
属性:
url
重定向的URL,为一个字符串,或者None,抛出一个410 HTTP ERROR。
pattrern_name
重定向的URL pattern名,和使用args和kwargs一样,被传入到这个视图,将会进行revsering。
permanent
重定向是否是永久的,这个唯一的不同的是返回的状态码不同。如果为True,这个重定向将使用301的状态码,如果为False,这个重定向将使用302的状态码,默认为False。
query_string
是否将GET查询字符串传递进去。如果为True,这个字符串将会添加到URL后面,如果为False,将会被丢弃。
方法:
get_redirect_url(*args, **kwargs)
构造重定向的目标URL。
Django基本视图的更多相关文章
- 【Django】 视图层说明
[Django视图层] 视图层的主要工作是衔接HTTP请求,Python程序和HTML模板,使他们能够有机互相合作从模型层lou到数据并且反馈.说到视图层的工作就有以下几个方面要说 ■ URL映射 对 ...
- Django之视图
Django之视图 Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个 ...
- Django通用视图APIView和视图集ViewSet的介绍和使用
原 Django通用视图APIView和视图集ViewSet的介绍和使用 2018年10月21日 14:42:14 不睡觉假扮古尔丹 阅读数:630 1.APIView DRF框架的视图的基类是 ...
- Django之视图函数总结
Django之视图函数总结 HttpRequest与HttpResponse http请求中产生两个核心对象: HttpRequest对象:用户请求相关的所有信息(对象) HttpResponse对象 ...
- Django _VIEW视图_源码分析
Django _VIEW视图: 1. 点击as_view方法. 第二步: as_view () 为VIEW 类里定义的,到时候我们定义业务逻辑的类就继承这个VIEW类. view方法内返回的是disp ...
- Django的视图层简介
Django的视图层 视图函数 所谓视图函数,其实就是我们Django项目中各个应用中的views.py文件中定义的每个用来处理URL路由映射到这里的逻辑函数.一个视图函数简称视图,它是个简单的Pyt ...
- django views视图函数返回值 return redirect httpresponse总结
django views视图函数返回值 return redirect render httpresponse总结
- Django的视图流式响应机制
Django的视图流式响应机制 Django的响应类型:一次性响应和流式响应. 一次性响应,顾名思义,将响应内容一次性反馈给用户.HttpResponse类及子类和JsonResponse类属于一次性 ...
- Django的视图响应类型
Django的视图响应类型 一. 视图函数编写原则 视图函数接受HTTP请求并返回响应,可以放在任何地方,可以是任何功能:视图函数可以返回Web文本,页面.重定向.错误.图片等任何内容:视图函数通过H ...
随机推荐
- String压缩 解压缩
数据传输时,有时需要将数据压缩和解压缩,本例使用GZIPOutputStream/GZIPInputStream实现. 1.使用ISO-8859-1作为中介编码,可以保证准确还原数据 2.字符编码确定 ...
- mxgraph进阶(三)Web绘图——mxGraph项目实战(精华篇)
Web绘图--mxGraph项目实战(精华篇) 声明 本文部分内容所属论文现已发表,请慎重对待. 需求 由于小论文实验需求,需要实现根据用户日志提取出行为序列,然后根据行为序列生成有向图的形式 ...
- 《java入门第一季》之有趣的集合小案例---获取10个【1-20之间】的随机数,要求不能重复。
import java.util.ArrayList; import java.util.Random; /* * 获取10个[1-20之间]的随机数,要求不能重复.(注意:不是获取10个数,如果单纯 ...
- 【Unity Shaders】Reflecting Your World —— Unity3D中的遮罩反射(Masking Reflections)
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- Windows下配置nginx+FastCgi + Spawn-fcgi
前提: 下载nginx, FastCgi, Spawn-fcgi Spawn-fcgi有个Windows的版本,但不能在VS中编译,这里有一个编译好的版本:http://download.csdn.n ...
- pig的cogroup详解
从实例出发 %default file test.txt A = load '$file' as (date, web, name, food); B = load '$file' as (date, ...
- chrome "Provisional headers are shown"
我的问题的,每次打开浏览器,点开有视频的页面(云平台的存储),然后当视频还没有加载完,就马上关闭,连续操作很多次(测试的暴力测试把),F12查看就有很多很多在加载中的连接,因为连续点击太多次了,第一个 ...
- JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有 ...
- 高通 MSM8K bootloader 之三: LK
- [Python]Flask构建网站分析应用
原文Saturday morning hacks: Building an Analytics App with Flask - 由orangleliu友情翻译 ,主要是通过埋点技术来实现web网页的 ...