process_exception(self, request, exception) 函数有两个参数,exception 是视图函数异常产生的 Exception 对象
process_exception 函数的执行顺序是按照 settings.py 中设置的中间件的顺序的倒序执行
process_exception 函数只在视图函数中出现异常的时候才执行,它返回的值可以是 None,也可以是一个 HttpResponse 对象
如果返回 None,则继续由下一个中间件的 process_exception 方法来处理异常
如果返回 HttpResponse,将调用中间件中的 process_response 方法
middleware_test.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from django.utils.deprecation import MiddlewareMixin from django.shortcuts import HttpResponse, renderclass Test(MiddlewareMixin):def process_request(self, request):print("这是一个中间件111 --> test11")def process_exception(self, request, exception):print("这里是 Test1的 process_exception")print(exception)return render(request, "index.html")class Test2(MiddlewareMixin):def process_request(self, request):print("这是一个中间件 --> test2")def process_exception(self, request, exception):print("这里是 Test2 的 process_exception")print(exception) |
views.py:
1 2 3 4 5 6 7 |
|
访问,http://127.0.0.1:8000/two/index/