首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django2.0中文(中间件)

None,或者是一个HttpResponse对象,如果是None,则继续按照django定义规则向后继续执行,如果是HttpResponse对象,则直接将改对象返回用户。...方法,如果process_request方法返回值是None,就依次执行;如果返回值是HttpResponse对象,则不再执行后面的process_request方法,而是执行当前对象中间件process_response...方法,并将HttpResponse对象返回浏览器。...image.png process_request方法都执行完后,匹配路由,找到要执行视图函数,先不执行视图函数,而是先执行中间件中process_view方法,process_view方法返回None...如果中间件 3 process_view方法返回了一个HttpResponse对象,则4, 5, 6process_view以及视图函数都不执行了,而是直接从最后一个中间件,也就是中间件 6 process_response

32310

Django 笔记-1-从请求到响应

,对 request 进行处理:若返回 None 进入到 10;若直接返回 HttpResponse 对象进入到 12。...对象传递给 View Middleware 进行处理,如果它返回了 HttpResponse 对象,那么该 HttpResponse 对象将被传递给 Response Middleware 进行后续处理...() 会被请求调用; 产生响应:它应该返回一个 None 或一个 HttpResponse 对象,如果返回 None,Django 会继续处理这个请求;如果它返回一个 HTTPResponse 对象,Django...None 或一个 HttpResponse 对象,如果返回 None,Django 会继续处理这个请求;如果它返回一个 HTTPResponse 对象,Django 会直接跳转到 Response Middleware...或一个 HttpResponse 对象,如果返回 None,Django 会继续处理这个请求;如果它返回一个 HTTPResponse 对象,模板对象和 Response Middleware 会被直接返回客户端

83920
您找到你想要的搜索结果了吗?
是的
没有找到

11.Django基础九之中间件

None或一个HttpResponse对象,如果是None,则继续按照django定义规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回用户。   ...返回值是None的话,按正常流程继续走,交给下一个中间件处理,如果是HttpResponse对象,Django将不执行视图函数,而将相应对象返回浏览器。       ...,不然你上层中间件就没有拿到httpresponse对象,就会报错       访问一个视图,看一终端输出: MD2里面的 process_request MD1里面的 process_request...ret #直接就在MD1中间件这里这个类process_response返回了,就不会去找到视图函数里面的这个函数去执行了。...process_request方法,而是执行当前对应中间件process_response方法,将HttpResponse对象返回浏览器。

66530

Django学习笔记之Django中间件

但是以后添加视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。 学完今天内容之后呢,我们就可以用更适宜方式来实现类似所有请求都做相同操作功能了 中间件 中间件介绍 什么是中间件?...None或一个HttpResponse对象,如果是None,则继续按照django定义规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回用户。...返回值是None的话,按正常流程继续走,交给下一个中间件处理,如果是HttpResponse对象,Django将不执行视图函数,而将相应对象返回浏览器。...MD2里面的 process_response 注意,这里并没有执行MD2process_exception方法,因为MD1中process_exception方法直接返回了一个响应对象。...process_request方法,而是执行当前对应中间件process_response方法,将HttpResponse对象返回浏览器。

38950

Django 中间件

但是以后添加视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。   中间件可以实现所有请求做相同操作,免去每一个视图函数加装饰器工作。...None或一个HttpResponse对象,如果是None,则继续按照Django定义规则向后继续执行,如果是HttpResponse对象,则直接将对象返回用户。...返回值是None的话,按正常流程继续走,交给下一个中间件处理,如果是HttpResponse对象,Django将不执行视图函数,而将相应对象返回浏览器。   ...MD2里面的 process_response 注意,这里并没有执行MD2process_exception方法,因为MD1中process_exception方法直接返回了一个响应对象。...就依次执行,如果返回值是HttpResponse对象,不再执行后面的 process_request 方法,而是执行当前对应中间件 process_request 方法,将HttpResponse对象返回浏览器

1.3K130

Django之中间件

None或一个HttpResponse对象,如果是None,则继续按照Django定义规则向后继续执行,如果是HttResponse对象,则直接将该对象返回用户....MD2里面的 process_response 注意: 这里并没有执行MD2process_exception方法,因为MD1中process_exception方法直接返回了一个响应对象. process_template-response...,立即执行了中间件process_response方法,顺序是倒序,先执行MD1,在执行MD2,接着执行了视图函数返回HttpResponse对象render方法,返回了一个新HttpResponse...对象,不再执行后面的process_request方法,而是执行当前对应中间件process_request方法,将HttpResponse对象返回浏览器.也就是说MIDDLEMARE中注册了六个中间件...假如中间件3 process_view方法返回了HttpResponse对象,则4,5,6process_view以及视图函数都不执行,直接从最后一个中间件,也就是中间件6process_response

38520

Django - - - -视图层之视图函数(views)

代码写在哪里也无所谓,只要它在你Python目录下面。除此之外没有更多要求了——可以说“没有什么神奇地方”。...视图函数:     一定包含两个对象:         requset---->用户请求相关所有信息(对象)         Httpresponse---->响应字符串 一个简单视图 下面是一个返回当前日期和时间作为..." % now return HttpResponse(html) 让我们逐行阅读上面的代码: 首先,我们从 django.http模块导入了HttpResponse...每个视图函数都负责返回一个HttpResponse对象。 ?...在HttpResponse对象上扩展常用方法  1.render 函数 将指定页面渲染后返回浏览器 render(request, template_name[, context]) 结合一个给定模板和一个给定上下文字典

1.6K100

session与cookie,django中间件

None或一个HttpResponse对象,如果是None,则继续按照django定义规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回用户。...返回值是None的话,按正常流程继续走,交给下一个中间件处理,如果是HttpResponse对象,Django将不执行视图函数,而将相应对象返回浏览器。...如果它返回一个HttpResponse对象,那么将不会执行Django视图函数,而是直接在中间件中掉头,倒叙执行一个个process_response方法,最后返回浏览器 中间件执行流程 请求到达中间件之后...,先按照正序执行每个注册中间件process_request方法,process_request方法返回值是None,就依次执行,如果返回值是HttpResponse对象,不再执行后面的process_request...方法,而是执行当前对应中间件process_response方法(注意不是掉头执行所有的process_response方法),将HttpResponse对象返回浏览器。

60130

Django实践-08中间件应用

) # 视图函数出现异常 以上方法返回值可以是None或一个HttpResponse对象,如果是None,则继续按照django定义规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回用户...请求到达中间件之后, 先按照正序执行每个注册中间件process_request方法,process_request方法返回值是None,就依次执行,如果返回值是HttpResponse对象,...不再执行后面的process_request方法,而是执行当前对应中间件process_response方法(注意不是掉头执行所有的process_response方法),将HttpResponse对象返回浏览器...也就是说:如果MIDDLEWARE中注册了6个中间件,执行过程中,第3个中间件返回了一个HttpResponse对象,那么第4,5,6中间件process_request和process_response...假如中间件3 process_view方法返回了HttpResponse对象,则4,5,6process_view以及视图函数都不执行,直接从最后一个中间件,也就是中间件6process_response

14520

Django—视图

视图功能 视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse请求者。...视图必须返回一个HttpResponse对象或子对象作为响应。响应可以是一张网页HTML内容,一个重定向,一个404错误等。...视图传递变量request_path模板,表示导致错误URL。 1)在templates中创建404.html。 2)定义代码如下: ? ?...上去 四、HttpResponse对象 视图在接收请求并处理后,必须返回HttpResponse对象或子对象。在django.http模块中定义了HttpResponse对象API。...此时不需要重新编写列表代码而是转到这个视图就可以,此时就需要模拟一个用户请求效果,从一个视图转到另外一个视图,就称为重定向。

4.4K20

03.Django基础三之视图函数

响应可以是一张网页HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。   无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。...除此之外没有更多要求了——可以说“没有什么神奇地方”。为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中名为views.py文件中。..." % now return HttpResponse(html)   让我们来逐行解释面的代码: 首先,我们从 django.http模块导入了HttpResponse...然后,Django加载相应视图,将这个HttpRequest对象作为第一个参数传递给视图函数。   每个视图负责返回一个HttpResponse对象。 ?   ...这样优点主要下面两种: 提高了代码复用性,可以使用面向对象技术,比如Mixin(多继承) 可以用不同函数针对不同HTTP方法处理,而不是通过很多if判断,提高代码可读性     如果我们要写一个处理

4.9K30

Django请求和响应对象

然后,Django 加载相应视图,将 HttpRequest 作为视图函数第一个参数。每个视图负责返回一个 HttpResponse 对象。...": "1", "msg": "数据格式错误"}) # 表单数据 # keys = request.POST.get("keys") # 如果POST携带是表单数据,可以这样获取...每一个视图函数都必须返回一个HttpResponse对象HttpResponse类位于django.http模块中。...HttpResponse对象用法 典型用法是将页面的内容以字符串、字节字符串或 memoryview 形式传递给 HttpResponse 构造函数。...") 在前后端分离大趋势,我们机会很少使用后端去渲染页面。后端通常都是返回JSON数据。 传入迭代器 你可以传递 HttpResponse 一个迭代器而不是字符串。

1.5K20

不会DRF?源码都分析透了确定不来看?

view(requets),加括号调用,并且传入了当次请求request对象 3、然后又返回了当前对象dispatch方法,自己名称空间内没有,那么去父类中找,然后发现父类(View)dispatch...,从当前对象视图对象)拿到请求方法,如果是get请求就拿到get方法,post请求就拿到post方法,然后赋handler,handler就是相应请求对应方法,最后返回handler(request..._allowed_methods()) getattr(obj,pro,None):按pro判断是否有无obj.pro属性,没有返回NoneNone可以自定制 反射忘记可以看俺这篇博客:python...,执行过程中出了异常,都会被处理掉 6、dispatch执行完毕返回reponse对象,跳转回进入视图函数继续执行as_view去掉了csrf校验 如何包装了新request?...中间件---路由---···---三大认证---视图函数···· # 类似二次校验 Request对象分析 这里是经过包装后request rest_framework.request.Request

1.3K10

django 1.8 官方文档翻译: 3-1-2 编写视图

代码写在哪里也无所谓,只要它在你Python目录下面。除此之外没有更多要求了——可以说“没有什么神奇地方”。...我们将其命名为current_datetime,是因为这个名称能够精确地反映出它功能。 这个视图返回一个HttpResponse对象,其中包含生成响应。...每个视图函数都要返回HttpResponse对象。(有例外,我们接下来会讲。) Django中时区 Django中包含一个TIME_ZONE设置,默认为America/Chicago。...可能并不是你住地方,所以你可能会在设置文件里修改它。 把你URL映射到视图 所以,再重复一遍,这个视图函数返回了一个包含当前日期和时间HTML页面。...Http404异常 class django.http.Http404 当你返回一个像HttpResponseNotFound这样错误时,它会输出这个错误面的HTML作为结果: return HttpResponseNotFound

54330

cookie、session和中间件

None或一个HttpResponse对象,如果是None,则继续按照django定义规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回用户。...返回值是None的话,按正常流程继续走,交给下一个中间件处理,如果是HttpResponse对象,Django将不执行视图函数,而将相应对象返回浏览器。...2.该方法一旦返回了HttpResponse对象,那么请求会立刻停止往后走 原路立即返回。...3.当process_request方法直接返回HttpResponse对象之后会直接从当前中间件里面的process_respone往回走,没有执行中间件都不会再执行。...2.如果该方法返回了HttpResponse对象 那么会从下往上依次经过每一个中间件里面的process_response方法。

1.2K20

Django中间件之一

例如,返回用户信息包含响应头和响应体,但是开发者在视图函数中没有设置响应头,所以Django会在返回信息中自动加上响应头....,程序不会再执行后面的中间件,而是直接执行process_response方法,然后返回信息用户....这是因为上面的代码没有bug.当代码运行错误,出现报错信息时候,process_exception才会执行 那现在就模拟让程序出现错误,观察process_exception方法执行情况 修改视图函数...由此我们知道,程序运行错误,中间件中process_exception方法才会执行,而程序正常运行时候,这个方法则不会执行 刚才代码里,process_exception方法没有设置返回值,如果为...("index page") return MyResponse(response) MyResponse类返回是自定义对象,这个对象里边调用了render方法. index视图函数里

37620

Django之视图

一、视图函数   一个视图函数,简称视图,是一个简单python函数,接收web请求并返回web响应。响应可以是一张网页HTML内容,一个重定向,一个404错误等。...下面是一个返回当前时间视图函数 from django.shortcuts import render, HttpResponse, HttpResponseRedirect, redirect import...*/   三、响应对象   响应对象就相当于就web请求web回应,响应对象主要有三种形式:HTTPResponse(),render(),redirect()   1,HTTPResponse()...('Error') 上面代码功能是用户进行登录验证,成功后进入首页,但是我们用redirect()并不会在登录成功后直接发一个首页HTML文件浏览器,而是浏览器一个首页地址,要求浏览器马上在给我发一个刚才我给你首页地址请求...这种情况,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名 网站,也需要通过重定向让访问这些域名用户自动跳转到主站点等

1.7K10
领券