中间件是一个钩子框架,可以全局处理每个请求和响应,位于网络服务器和你的视图之间。每个中间件都可以在请求进入时和响应返回时检查/修改它们——非常适合处理身份验证、安全头、会话和日志记录等横切关注点。
中间件的请求/响应流
Request → MW1 → MW2 → MW3 → VIEW
Response ← MW1 ← MW2 ← MW3 ← VIEW
Middleware wraps the view like layers of an onion:
- on the way IN (request): top-to-bottom
- on the way OUT (response): bottom-to-top (reverse order)
Django 的内置中间件(在 settings.py 中)
MIDDLEWARE = [
,
,
,
,
,
,
]
