一、Django中间件的请求周期

我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下:

Django—middleware

也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对象,如果返回前者,继续处理其它中间件,如果返回一个 HttpResponse,就处理中止,返回到网页上。

二、自定义及注册中间件

1. 创建中间件

在project根目录下创建中间件py文件:

 1 class RequestExeute(object):
 2     def process_request(self, request):
 3         print('process_request')
 4 
 5     def process_view(self, request, callback, callback_args, callback_kwargs):
 6         print('process_view')
 7 
 8     def process_exception(self, request, exception):
 9         """
10         当views函数出错时执行
11         :param request: 
12         :param exception: 
13         :return: 
14         """
15         print('process_exception')
16         
17     def process_response(self, request, response):
18         """
19         必须return HttpResponse
20         :param request: 
21         :param response: 
22         :return: 
23         """
24         print('process_response')
25         return response
26 
27     def process_template_response(self, request, response):
28         """
29         视图函数的返回值中,如果有render方法,才被调用
30         :param request:
31         :param response:
32         :return:
33         """
34         print('process_template_response')
35         return response
md.py

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-20
  • 2021-04-01
  • 2021-07-31
  • 2021-05-15
  • 2021-07-29
  • 2021-07-20
  • 2022-01-23
相关资源
相似解决方案