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

django 1.8 官方文档翻译: 3-6-1 中间件概览

Django决定执行哪个视图(view)之前,process_request()会被每次请求调用。 应该返回一个None 或一个HttpResponse对象。...如果返回一个HttpResponse对象Django便不再会去调用其他的请求(request), 视图(view)或其他中间件,或对应的视图;处理HttpResponse的中间件会处理任何返回的响应...process_view()会在Django调用视图(view)之前被调用。 它将返回None 或一个HttpResponse 对象。...如果返回HttpResponse对象Django就不再会去调用其他的视图(view),异常中间件(exception middleware)或对应的视图 ;它会把响应中间件应用到HttpResponse...process_exception()应该返回一个None 或者一个HttpResponse对象。如果返回一个HttpResponse对象,模型响应和响应中间件会被应用,响应结果会返回给浏览器。

42330

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

,对 request 进行处理:若返回 None 进入到 10;若直接返回 HttpResponse 对象进入到 12。...; 调用时间:在 Django 决定执行哪个 view 之前,process_request() 会被请求调用; 产生响应:应该返回一个 None 或一个 HttpResponse 对象,如果返回 None...都不包括 request; 调用时间:process_view() 会在 Django 调用 view 前被调用; 产生响应:应该返回一个 None 或一个 HttpResponse 对象,如果返回...NoneDjango 会继续处理这个请求;如果返回一个 HTTPResponse 对象Django 会直接跳转到 Response Middleware; PS:除 CsrfViewMiddleware...或一个 HttpResponse 对象,如果返回 NoneDjango 会继续处理这个请求;如果返回一个 HTTPResponse 对象,模板对象和 Response Middleware 会被直接返回给客户端

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

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

每个视图函数都使用HttpRequest对象作为第一个参数,并且通常称之为request。 注意,视图函数的名称并不重要;不需要用一个统一的命名方式来命名,以便让Django识别。...我们将其命名为current_datetime,是因为这个名称能够精确地反映出的功能。 这个视图会返回一个HttpResponse对象,其中包含生成的响应。...  HttpResponse---->相应字符串 对于HttpRequest请求对象来说,是由django自动创建的,但是,HttpResponse响应对象就必须我们自己创建。...每个view请求处理方法必须返回一个HttpResponse响应对象HttpResponse类在django.http.HttpResponse。...,并返回一个渲染后的 HttpResponse 对象

1.6K100

Django之中间件

None或一个HttpResponse对象,如果是None,则继续按照Django定义的规则向后继续执行,如果是HttResponse对象,则直接将该对象返回给用户....: None 返回值是None,按正常流程走,交给下一个中间件;        HttpResponse对象 若是此值,Django将不执行当前中间件后面的中间件的process_request方法和视图函数...HttpResponse对象. 如果返回一个HttPResponse对象,Django不会调用适当的视图函数....HttpResponse对象的render方法,返回了一个新的HttpResponse对象,接着执行中间件的process_response方法....特殊情况: 示图某方法有返回response对象,就会执行process_response方法;      出现错误就会执行exception方法处理,若都出现错误,Django会处理错误,处理完成后还要执行

38320

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,6的process_view以及视图函数都不执行,直接从最后一个中间件,也就是中间件6的process_response

14020

Django 分析(一)Requst、Middleware 和 Response 数据流

None 或一个 HttpResponse 对象: 如果是 None,则继续按照 Django 定义的规则向后继续执行 如果是 HttpResponse 对象,则直接将该对象返回给用户 from django.utils.deprecation...返回值是 None 的话,按正常流程继续走,交给下一个中间件处理 如果是 HttpResponse 对象Django 将不执行视图函数,而将相应对象返回给浏览器 process_response:有两个参数...应该返回 None 或一个 HttpResponse 对象 如果返回 NoneDjango 将继续处理这个请求,执行任何其他中间件的 process_view 方法,然后在执行相应的 Views...如果返回一个 HttpResponse 对象Django 不会调用适当的 Views 函数。...exception 是视图函数异常产生的 Exception 对象 这个方法只有在视图函数中出现异常了才执行,返回的值可以是一个 None 也可以是一个 HttpResponse 对象 如果是 HttpResponse

51810

Django中间件看完这篇彻底明白

None或者HttpResponse对象,如果返回None,则交给下一个中间件的对应函数处理;如果返回HttpResponse对象,则将其返回给用户 在这些中间件的执行函数中,我们最常用的就是process_request...如果返回NoneDjango将继续处理下一个中间件的request函数;如果返回HttpResponse对象Django将不再执行其他除process_response以外的所有函数,包括后面的process_request...如果返回NoneDjango将继续处理下一个中间件的request函数;如果返回HttpResponse对象Django将不再执行其他除process_response以外的所有函数,包括后面的process_request...如果返回NoneDjango将使用框架内置异常处理,并继续交给下一个exception函数;如果返回HttpResponse对象Django将不再执行其他除process_response以外的所有函数...返回并且只能、必须返回HttpResponse对象,否则会导致HTTP请求中断。

3.7K20

Python Django中间件使用原理及流程分析

(无return)         *该方法有两个参数:         一个是httpresponse对象         一个是视图函数产生的exception对象         这个函数只有在视图函数抛出异常才可以执行...,返回none或者httpresponse对象,如果是httpresponse对象django将调用模板和中间件中的process_reponse方法,并将返回给浏览器,否则默认处理异常,如果返回none...(有return)     返回值可以是一个NONE,或者HttpResponse对象,如果是none,继续按照django定义的向下执行,交给下个中间件处理,如果返回Httpresponse对象django...将不执行视图函数,则直接将该对象返回给用户。     ...3.缓存   客户端请求来了,中间件去缓存看看有没有数据,有直接返回给用户,没有再去逻辑层执行视图函数   4、CSRF   Django项目中默认启用了csrf保护,每次请求时通过CSRF中间件检查请求中是否有正确

1K31
领券