django中间件
django默认有七个中间件 并且还支持用户自定义中间件
中间件主要可以用于:网站访问频率的校验,用户权限的校验等全局类型的功能需求
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',
]
如何自定义中间件:
1.创建存储自定义中间件代码的py文件或者目录(如果中间件很多)
2.参考自带中间件的代码编写类并继承
3.在类中编写五个可以自定义的方法
中间件之process_request
1.请求来的时候会从上往下一次经过每个注册了的中间件里面的该方法,如果没有则直接跳过
2.如果该方法自己返回了HttpResponse对象那么不再往后执行而是直接原路返回
中间件之process_response
1.响应走的时候会从下往上一次经过每一个注册了的中间件里面的该方法,如果没有则直接跳过
2.该方法两个形参request和response,形参response指代的就是后端想要返回给前端浏览器的数据,该方法必须返回该形参,也可以替换
"""
如果在执行process-request方法的时候直接返回了HttpResponse对象那么会原路放回执行process_response 不是执行所有
"""
标签:自定义,process,middleware,中间件,django,response
From: https://www.cnblogs.com/zhanghong1229/p/16996957.html