中间件
新建中间件py文件 myMiddleWare.py
from django.http import HttpResponse
导入中间件
from django.utils.deprecation import MiddlewareMixin
class MyException(MiddlewareMixin):
系统自带的中间件 视图抛出异常后调用
def process_exception(self,request,exception):
return HttpResponse(exception)
系统自带的中间件有5个,其他四个是:
视图执行之前被调用
process_request(self,request) :
调用视图之前被调用
process_view(self, request, callback, callback_args, callback_kwargs):
视图刚执行完调用
process_template_response(self,request,response):
响应返回浏览器之前调用
process_response(self, request, response)
# 自定义的中间件类
class UserMiddleware(object):
def __init__(self, resp):
传过来的视图函数
self.resp = resp
def __call__(self, request):
userName = request.session.get('username', '这是未获取到数据时的值')
if userName:
setattr(request, 'user', userName)
print('调用视图函数响应之前')
调用