Skip to content

实战路线与学习安排 ​

每次学习的固定动作 ​

  1. 用自己的话解释本节概念。
  2. 运行示例,核对预期结果。
  3. 改一个字段、约束或路径,观察变化。
  4. 主动提交错误输入,理解错误信息。
  5. 合上示例,独立重写关键部分。
  6. 写下一条今天踩过的坑与解决方法。

看懂代码与独立写出代码不是同一步。遇到错误时,先保留完整错误信息,检查自己的声明与实际请求是否一致。

基础学习与数据库专题安排 ​

下面是按每天约 45~90 分钟设计的参考节奏,可根据实际情况放慢。完成能力目标比按日历赶进度更重要。

阶段章节主要实践这一阶段的成果
第 1 周1~6环境、路由、路径与查询、JSON 模型能写参数清楚的基础接口
第 2 周7~13校验、响应、异常、依赖、拆分、内存 CRUD能独立实现待办事项 API
第 3 周14、25~31MySQL、模型、CRUD、条件查询数据可持久化,能独立查询和修改
第 4 周32~36三种关系、预加载、事务能查询关联记录并保证相关写入一致
第 5 周及之后15~22、37~40认证、完整接口、迁移、MySQL 测试与部署能完成一个可演示的小项目

每周留一天复盘与修复问题。前面基础没有掌握时,先暂停进阶,不必强行学 WebSocket 或分布式任务。

最终项目:多用户学习任务管理 ​

从第 14 章的项目逐步演化,而不是每次从零换一个项目。

阶段要增加什么验收方式
A:基础接口创建、列表、详情、PUT、PATCH、删除完整走通一次增删改查
B:规则空白标题拒绝、分页、筛选、字段约束合法输入成功,非法输入得到明确错误
C:持久化MySQL 表、Tortoise 连接池、事务重启后任务仍能查到
D:多用户注册、登录、当前用户、任务归属A 用户不能查看或修改 B 用户任务
E:工程组织多文件、配置、日志、迁移入口清晰,敏感配置在代码外
F:测试与运行接口测试、隔离数据库、正式运行命令测试可重复通过,能按说明准备新环境

注册逻辑至少包括用户名规则、重复用户处理、密码哈希;数据库应以唯一约束保障用户名唯一。任务归属必须在后端查询或权限逻辑中检查。

推荐项目结构 ​

text
learning-tasks/
├── app/
│   ├── __init__.py
│   ├── main.py
│   ├── config.py
│   ├── db.py
│   ├── models.py
│   ├── schemas.py
│   ├── dependencies.py
│   ├── routers/
│   │   ├── __init__.py
│   │   ├── auth.py
│   │   └── todos.py
│   └── services/
│       ├── __init__.py
│       └── todos.py
├── tests/
│   ├── conftest.py
│   ├── test_auth.py
│   └── test_todos.py
├── .env.example
├── .gitignore
├── requirements.txt
└── README.md

没有足够复杂业务时,可以先省略 services/,不要为了匹配目录图把一个简单函数拆到很多地方。

最终验收清单 ​

  • [ ] 可以在一个新虚拟环境中按说明启动项目。
  • [ ] 接口参数来源明确,文档可读。
  • [ ] 必填、可省略、可空字段符合业务约定。
  • [ ] 创建、读取、更新、删除与分页都能工作。
  • [ ] 数据重启后仍在。
  • [ ] 密码只以专用哈希保存,响应中没有哈希。
  • [ ] 未登录、无权限、资源不存在有合适的状态码。
  • [ ] 用户不能访问其他用户的私人任务。
  • [ ] PATCH 不会错误覆盖未传字段。
  • [ ] 数据库测试使用隔离环境。
  • [ ] 能解释自己用了哪些同步和异步工具。
  • [ ] 敏感配置不直接写在提交的代码中。

完成这些目标后,你就具备了继续学习更完整后端项目的基础。