Django中间件实战
理解中间件原理,编写自定义中间件处理请求和响应。 · 难度:入门 · +15XP
中间件是什么
中间件是Django请求/响应处理过程中的钩子框架。它是一个轻量级的、底层的“插件”系统,用于在视图执行前后修改请求或响应。
中间件执行顺序
请求 → 中间件1.process_request → 中间件2.process_request → 视图 → 中间件2.process_response → 中间件1.process_response → 响应自定义中间件
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# 视图执行前的代码
print(f"请求路径: {request.path}")
response = self.get_response(request)
# 视图执行后的代码
print(f"响应状态: {response.status_code}")
return response注册中间件
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'myapp.middleware.SimpleMiddleware',
...
]| 方法 | 作用 |
|---|---|
| process_request | 在视图之前调用 |
| process_response | 在视图之后调用 |
| process_view | 在视图函数调用前执行 |
| process_exception | 视图抛出异常时执行 |
练习提示: 在starter_code中编写一个中间件,禁止来自IP '192.168.1.100'的请求,返回403响应。