前面一章一章拆开讲,现在把整条路径重新合起来。
这张图如果吃透,Django 就基本真的入门了:
浏览器发起请求
│
▼
Web 服务器 / ASGI / WSGI 入口
│
▼
Django 加载 settings
│
▼
Middleware(请求阶段)
│
├── SessionMiddleware
├── AuthenticationMiddleware
├── CSRF 相关中间件
└── 其他自定义中间件
▼
URL Resolver 匹配路由
│
▼
进入 View
│
├── 读取 request.GET / request.POST / request.FILES
├── 读取 request.user
├── 调用 Form 做校验
├── 调用 Model / ORM 查库
├── 选择 render / redirect / JsonResponse
└── 必要时抛出 404 / 403 / 500
▼
生成 HttpResponse
│
▼
Middleware(响应阶段)
│
▼
返回浏览器再看一张概念关系图:
+----------------------+
| Middleware |
+----------------------+
│ │
请求 ---> URLconf ----> View ----> Response
│
┌───────┼────────┐
│ │ │
▼ ▼ ▼
Form Model Template
│
▼
ORM
│
▼
Database几个容易模糊但必须清楚的事实:
- Template 不是每次都参与,请求也可以直接返回 JSON、文件或重定向
- Middleware 会包住整条进出流程
request.user之所以可用,是认证相关中间件提前工作了runserver只是开发服务器,不是生产部署方案本身
把这条生命周期理解成“市民进城办事的一整天”,你就不容易在代码里迷路。