首页 > 其他 > 详细

Django 中间件

时间:2019-08-04 17:07:07      阅读:75      评论:0      收藏:0      [点我收藏+]

一、定义

中间件在wsgi和urls之间

二、配置

1、创建.py文件

2、定义中间件

from django.utils.deprecation import MiddlewareMixin

class Md1(MiddlewareMixin):

3、setting.py文件中添加自定义的中间件

MIDDLEWARE = [
    django.middleware.security.SecurityMiddleware,
    django.contrib.sessions.middleware.SessionMiddleware,
    django.middleware.common.CommonMiddleware,
    django.middleware.csrf.CsrfViewMiddleware,
    django.contrib.auth.middleware.AuthenticationMiddleware,
    django.contrib.messages.middleware.MessageMiddleware,
    django.middleware.clickjacking.XFrameOptionsMiddleware,
    my_middleware.Md1,
    my_middleware.Md2,
]

三、中间件的方法

process_request(self,request)
process_view(self, request, view_func, view_args, view_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)

process_request 和 process_response最为重要

process_view其次

其它了解即可

1、process_request

执行顺序:注册顺序

何时执行:wsgi之后

返回值:

None,继续执行后续的中间件的process_request方法

返回response , 不执行后续的中间件的process_request方法

2、process_response

执行顺序:注册顺序倒序

何时执行:请求响应的时候

返回值: 必须要有返回值

返回原来的响应

return response

3、process_view

执行顺序:注册顺序

何时执行:urls.py之后,views.py之前

返回值:
返回None,继续执行后续的中间件的process_view方法
返回response,不执行后续的中间件的process_view方法

4、process_exception

执行顺序:注册倒序

何时执行:views中有异常抛出

返回值:

返回None,继续执行后续的中间件的process_exception方法

返回response,

5、process_template_response

执行顺序:注册倒序

何时执行:视图函数中有render()

返回值:

返回None,继续执行后续中间件的process_exception

返回response,

四、总结

中间件5个方法的顺序

1、process_request

2、process_view

3、process_exception   有异常

4、process_template_response   render()方法

5、process_response 必须要有返回值

Django 中间件

原文:https://www.cnblogs.com/wt7018/p/11298744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!