Django HTTP中间件:全局拦截请求与响应

48 阅读1分钟

微信图片_20230808094553.pngDjango的中间件(Middleware)是处理请求和响应的强大钩子机制,允许开发者在视图执行前后插入自定义逻辑,实现全局功能如认证、日志、限流等。

中间件工作原理****

Django中间件遵循"洋葱模型":

1. 请求到达时,从外到内依次通过各中间件的process_request方法

2. 到达视图函数处理

3. 响应返回时,从内到外依次通过各中间件的process_response方法

自定义中间件实现****

基础中间件模板****

python

 class SimpleMiddleware:
 def init(self, get_response):
 self.get_response = get_response
 # 初始化代码(仅执行一次)
  
 def call(self, request):
 # 请求预处理(从上到下)
 response = self.get_response(request)
 # 响应后处理(从下到上)
 return response

中间件是Django中实现横切关注点的理想工具,合理使用可以避免代码重复,保持业务逻辑的纯净性。