Skip to content

第一站:项目、配置与请求生命周期 ​

课程首页 | 路线映射

本站交付一个可以重复启动的 Django 项目和 /health/。先使用 SQLite 降低起步成本,但把配置边界设计成之后能切换目标数据库。

运行基线 ​

bash
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install "Django~=6.0.0"
django-admin startproject config .
python manage.py startapp tickets
python manage.py migrate
python manage.py check

随后学习项目、settings 与请求链路和环境配置与应用启动。

交付物 ​

  • config/ 只放全局入口与配置,tickets/ 放工单业务。
  • tickets 已加入 INSTALLED_APPS。
  • /health/ 返回 JSON 和 200;未知路径返回 404。
  • 依赖约束和实际安装版本均可追溯。

深水边界 ​

runserver 是开发服务器。它能验证路由和代码,不证明生产并发、TLS、静态文件或优雅停机。不要在 AppConfig.ready() 中执行查询或外部请求;管理命令、测试和多个 worker 都可能触发应用初始化。

Django 5.2 LTS 可把安装约束换成 Django~=5.2.0。两条版本线使用独立虚拟环境,不在一份锁文件中“随机兼容”。

练习(无答案展开) ​

  1. 让 /health/ 只接受 GET,并为 POST 返回 405。
  2. 在响应中加入 Django 版本,不返回数据库密码、路径或环境变量。
  3. 写出请求经过服务器、middleware、URL resolver、view、response middleware 的顺序。

完成后再看练习答案。验收:python manage.py check 退出 0,GET /health/ 为 200,POST 为 405。

下一站 ​

第二站:URL、视图与模板

用心记录每一步成长