在 Django 中,一个请求由 WSGI/ASGI handler 处理,被一叠 middleware 包裹,由 URL resolver 路由到一个 view,并转换成一个 HttpResponse,它会沿着同一批 middleware 以相反顺序流回。
各阶段
scss
Web server ──▶ WSGI/ASGI handler (创建 HttpRequest)
▼
Middleware — request 阶段 (自上而下: get_response 之前的 __call__)
▼
URL resolver (urls.py) ── 匹配 → view + kwargs
▼
Middleware — process_view hook
▼
View (function / class-based) ── 你的逻辑, 返回 HttpResponse
▼
Middleware — response 阶段 (自下而上: get_response 之后)
▼
HttpResponse ──▶ client
