Django基本视图

下面这三个类也许不能提供项目所需的所有的功能,这些应用于基于类的视图或Mixins情形下。

大多数Django的内建视图继承于其他基于类的视图或者各种mixins中,因为继承链是很重要的。

View

  class django.views.generic.base.View

这是基于类视图的主控类,所有的其他的基于类的视图都这个基类。严格来说他不是一个通用视图,但也可被导入。

Method Flowchart 方法流程图

  1. dispatch()

  2. http_method_not_allowed()

  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()

  2. http_method_not_allowed()

  3. get_context_data()

  从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()

  2. http_method_not_allowed()

  3. get_redirect_url()

属性:

  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。

时间: 2024-10-17 20:50:26

Django基本视图的相关文章

Django高级视图和URL配置

URLconf 技巧 URLconf没什么特别的,就象 Django中其它东西一样,它们只是 Python代码.你可以在几方面从中得到好处,正如下面所描述的. 流线型化(Streamlining)函数导入 看下这个 URLconf,它是建立在第三章的例子上: from django.conf.urls.defaults import * from mysite.views import current_datetime, hours_ahead, hours_behind, now_in_chi

Django之视图(views.py)

1,视图的作用就是URL和模板的连接器,我们在浏览器中输入URL,Django通过视图找到相应的模板,然后返回给浏览器. 2,视图的URL配置过程:setting中的:ROOT_URLCONF,然后是项目中的url.py的配置,然后是APP中的url.py的配置 setting: ROOT_URLCONF = 'lianxi03.urls' 项目url: from django.contrib import admin from django.urls import path,include u

Django之视图函数总结

Django之视图函数总结 HttpRequest与HttpResponse http请求中产生两个核心对象: HttpRequest对象:用户请求相关的所有信息(对象) HttpResponse对象:响应字符串 HttpRequest对象的属性和方法: request.path # 获取访问文件路径 request.method #获取请求中使用的HTTP方式(POST/GET) request.body #含所有请求体信息 是bytes类型 request.GET #GET请求的数据(类字典

Django 定义视图函数

Django 定义视图函数 视图函数主要在Django项目内app下的 views.py 文件内定义 # 调用模块方法 from django.shortcuts import render,HttpResponse,redirect def func() # 包含所有的请求数据 .... # 返回字符串内容 return HttpRespon('字符串') # 返回数据 render(request,'模板路径') 返回html模板内容 return render(request,'index

Django之视图(view)

Django之视图(view) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应.简单理解就是接受请求返回响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片等等.无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.为了形成一致的标准,将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中. 先给个例子,体会一下: from

django(二)视图和URL配置

创建一份视图: 在上一节,使用django-admin.py startproject制作的mysite文件夹中,创建一个叫做views.py的空文件.这个Python模块健柏寒这一章的视图. views.py文件的内容: from django.http import HttpResponse def hello(request): return HttpResponse("hell world") 我们定义一个叫做hello的视图函数: 每个视图函数至少要有一个参数,通常被叫做re

Django:视图和URL配置

一.视图 1.在mysite文件夹下.创建views.py文件(文件名称没有特别的要求): from django.http import HttpResponse def hello(request): return HttpResponse("Hello world") 2.改动mysite文件夹下的urls.py文件: from django.conf.urls import url from django.contrib import admin from mysite.vie

Django的视图系统

视图(views)概述 在前几篇文章中介绍了,client端通过http请求——去url的路由找到相应的视图函数——触发视图函数——再去modes取数据——取到数据后——再通过创建模——views函数把相响应对象——返回给client最终显示的内容 视图文件(views.py)在app目录下才有 看看新建项目默认的views.py文件的内容 from django.shortcuts import render # Create your views here. 通过相应的url请求来写不同请求

python django -3 视图

视图 视图接受Web请求并且返回Web响应 视图就是一个python函数,被定义在views.py中 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等 响应处理过程如下图: URLconf 在settings.py文件中通过ROOT_URLCONF指定根级url的配置 urlpatterns是一个url()实例的列表 一个url()对象包括: 正则表达式 视图函数 名称name 编写URLconf的注意: 若要从url中捕获一个值,需要在它周围设置一对圆括号 不需要添加一个前导的

Django中视图总结[urls匹配,HttpRequest对象,HttpResponse对象,对象序列化接受及案例]

视图的功能: 接收请求,进行处理,返回应答. 视图返回的内容为: HttpResponse的对象或子对象 render 返回的是HttpResponse的对象 JsonResponse是HttpResponse的子类 HttpResponseRedirect也是HttpResonse的子类 redirect是HttpResponseRedirect的一个简写 总结:所以视图返回的内容一般为:render,redirect,JsonResponse,Httpresponse 定义视图函数分为两步