很多人对 FastAPI 的印象停留在「快」和「自动生成接口文档」这两点上,真到动手写项目时却卡在中间层:路由参数怎么校验、请求体嵌套结构怎么定义、数据库会话什么时候该关、多张表之间的关联查询怎么写。这门课要解决的就是这段卡壳期的问题——它不铺概念史,也不停在 Hello World,而是把 FastAPI 配 SQLAlchemy 做数据持久化这一条主线完整走一遍。

换句话说,它假设你已经会写基本的 Python 函数和类,也大致知道 HTTP 请求长什么样,但你没有独立用 FastAPI 加数据库做过一个能跑的接口服务。如果你正好处于「教程看完了、项目起不来」的状态,这份内容的密度会比零散刷文档更友好。

先确认缺口:你到底卡在哪一层

先做一次诚实的自检。你能不能只凭记忆写出一个带路径参数和查询参数的 FastAPI 路由,并且给它加上类型注解让校验自动生效?你能说清 ASGI 和 WSGI 的区别,以及为什么异步框架要跑在 ASGI 服务上吗?如果这两问答不上来,前面的概念铺垫部分不能跳,因为后面所有异步特性和依赖注入都建立在这个运行模型上。

再往下一层:你有没有用 ORM 建过带外键的模型类,并且用迁移工具管理过表结构变更?能不能解释 session 的生命周期,知道为什么它不该在多个请求之间共享?这是绝大多数人从「能写接口」到「能写业务接口」之间真正的坎。资料里从模型类定义、engine 创建、迁移工具,到 session 的增删改查,占了相当大的篇幅,说明它把持久化当成了课程重心而不是附属章节。

第三层是关联与查询。一对多、一对一、多对多、树形自关联,这几种关系在真实业务里几乎必然遇到——组织架构、分类目录、订单明细都属于这一类。如果你之前只写过单表 CRUD,遇到关联查询和嵌套返回结构时会明显感到无从下手。这门课把这类问题集中处理,是这个主题里最有价值的部分。

适合什么基础,不适合什么人

适合的基础是:Python 语法熟练,能读懂装饰器、类型注解、上下文管理器;了解基本的 SQL,知道主键、外键、索引大概是什么;对 HTTP 方法、状态码、请求头和请求体有直觉性的理解。如果你写过 Flask 或 Django 的任意一个小项目,上手会更快,因为路由和 ORM 的心智模型可以迁移,只是 FastAPI 更依赖类型系统来表达约束。

不太适合的是完全没写过 Web 后端的人。这类内容直接从 Web 开发模式和 ASGI 协议切入,节奏偏紧凑,缺少「为什么需要后端框架」这类铺垫。另外,抱着只看不练心态的人也不合适:数据库这块如果不动手建表、不改模型、不真的触发一次迁移,看完视频依然写不出可用的代码,因为报错信息和字段约束的细节只能靠亲手调。

还有一点要提前说明:这门课的重心在后端接口与数据层,不涉及前端页面渲染、部署运维、容器编排这些话题。如果你的目标是独立上线一个生产服务,还需要另外补部署和配置管理的内容。把它当成「接口与数据持久化」这一段的专门训练更准确。

建议的观看顺序与取舍

第一部分建议按顺序走:Web 开发模式概念、ASGI 协议、第一个程序、路由和启动方式、接口文档加载慢的处理。这几块是环境与运行模型,跳过会导致后面遇到异步相关报错时完全无从判断。接口文档打开慢这个点看似琐碎,但在实际开发中很影响效率,值得留意它的处理思路。

第二部分是参数与校验:路由传参的两种形态、URL 传参、数据校验、请求体传参以及单个字段的传参方式。这里的重点不是记住语法,而是理解「用类型注解声明约束」这套思路。建议每看完一节,就自己写一个带嵌套结构的请求体,观察校验失败时返回的错误信息长什么样。

第三部分是数据库主线,也是全课最需要反复看的部分:从 SQLAlchemy 介绍、创建 engine、建立模型类,到迁移工具的使用,再到 session 的新增、修改、删除、简单查询与高级查询。这一条线建议放慢速度,每完成一个操作就回到数据库里确认结果,不要只信接口返回。迁移工具那节尤其要亲手做一次模型变更,体会它和直接改表的区别。

第四部分是关联关系,从一对多、双向关联与迁移,到树形自关联及其操作,再到一对一和多对多。这部分建议先画 ER 图再写代码,把表之间的关系想清楚,否则很容易在外键字段和关系属性之间绕晕。复杂关联查询和嵌套模型转换可以放在最后集中攻克,它们本质上是前面内容的组合。

第五部分是接口层收尾:依赖注入处理 session、ORM 对象与响应模型的转换、单个资源查询与模型嵌套、分页查询、修改和删除。到这里你已经具备拼出一个完整业务接口的能力,建议用一个小型管理场景把它们串起来练一遍。

学完应该能独立做什么,以及怎么配合练习

学完之后,你应该能独立完成这些事情:从零搭起一个 FastAPI 服务,划分路由模块,用类型注解完成参数与请求体的校验;用 ORM 定义包含多种关联关系的模型,并通过迁移工具管理表结构演进;用依赖注入统一管理数据库会话,避免连接泄漏;实现带分页、嵌套返回结构的列表与详情接口,以及完整的增删改操作。

更重要的是,遇到问题你能自己定位到层次:是 ASGI 运行层、参数校验层,还是 ORM 会话与事务层。这种分层判断能力比记住某个写法更值钱,因为它决定了你能否在文档和报错信息之间找到答案。

练习方式上给三个建议。第一,不要照抄代码,看完一节先关掉视频自己写,卡住了再回看,这样暴露出来的空白才是真实的缺口。第二,把课程里的表结构换成你自己的业务场景,比如把员工换成文章与评论,把树形结构换成商品分类,亲手处理一遍关联查询与嵌套返回,你会发现细节差异带来的问题。第三,每完成一个模块就整理一份自己的接口清单,写清路径、方法、入参和返回结构,这既是自测,也是以后回查的依据。

看完之后你应该能回答这些问题:ASGI 服务在请求处理中扮演什么角色?路由参数校验失败时框架做了什么?session 为什么必须按请求隔离?一对多和多对多在表结构和查询写法上的差别在哪里?分页查询需要同时解决哪两个问题?如果这几个问题你能用自己的话讲清楚并写出对应代码,这一阶段的目标就算达到了。

课程目录

📁 课程资料
课程资料.exe  [3.5 MB]
25 一对多关联操作.mp4  [179.3 MB]
26 树形结构的自关联.mp4  [100.5 MB]
27 树形结构的操作.mp4  [45.9 MB]
28 一对一的关联关系.mp4  [138.9 MB]
29 多对多的关联关系.mp4  [163.6 MB]
30 关联复杂查询(一).mp4  [114.8 MB]
31 关联复杂查询(二).mp4  [146.2 MB]
32 定义添加员工的schemas.mp4  [148.0 MB]
24 双向关联的数据库迁移.mp4  [110.2 MB]
23 一对多的关联关系.mp4  [172.3 MB]
22 session的高级查询.mp4  [214.7 MB]
21 session的删除操作.mp4  [81.7 MB]
20 session的修改操作.mp4  [62.5 MB]
33 session的依赖注入.mp4  [149.4 MB]
34 ORM模型对象转换.mp4  [83.2 MB]
35 查询单个员工和模型嵌套.mp4  [123.5 MB]
36 分页查询员工信息.mp4  [58.1 MB]
37 修改和删除员工.mp4  [117.4 MB]
19 session的简单查询.mp4  [196.5 MB]
18 session的新增操作.mp4  [130.4 MB]
17 alembic的数据库迁移工具.mp4  [152.9 MB]
16 建立模型类(二).mp4  [131.2 MB]
15 建立模型类(一).mp4  [180.3 MB]
14 创建数据的engine.mp4  [133.0 MB]
13 SQLAlchemy的介绍.mp4  [68.5 MB]
12 请求体单个传参.mp4  [88.2 MB]
11 请求体传参.mp4  [184.7 MB]
10 传参数的数据校验.mp4  [113.6 MB]
09 URL传参.mp4  [148.0 MB]
08 路由传参(二).mp4  [119.2 MB]
07 路由传参(一).mp4  [157.6 MB]
06 路由分发.mp4  [101.9 MB]
05 路由和启动方式.mp4  [150.3 MB]
04 接口文档打开慢的问题.mp4  [98.8 MB]
03 FastAPI的第一个程序.mp4  [159.7 MB]
02 ASGI协议和服务.mp4  [120.5 MB]
01 Web开发模式相关概念.mp4  [134.5 MB]