FastAPI + SQLAlchemy 零基础完整教程
一套面向新手小白的系统教程,从环境搭建开始,一步步带你学会用 FastAPI 和 SQLAlchemy 开发一个完整的 Web API 项目。
这套教程适合谁?
- 会一点 Python 基础(变量、函数、类、字典列表),但没写过 Web 后端
- 想学习如何开发 API 接口
- 想学习如何用 Python 操作数据库
- 想做出一个能上线的完整后端项目
技术栈版本说明
本教程使用当前主流的现代写法:
| 技术 | 版本 | 说明 |
|---|---|---|
| Python | 3.10+ | 建议 3.11 或 3.12 |
| FastAPI | 0.110+ | 现代 Python Web 框架 |
| Pydantic | v2 | 数据校验库(FastAPI 自带) |
| SQLAlchemy | 2.0+ | Python 最流行的 ORM,使用 2.0 新语法 |
| Uvicorn | 最新 | ASGI 服务器,用来运行 FastAPI |
| SQLite / MySQL | - | 教学用 SQLite,也讲 MySQL 的接法 |
目录结构与学习路线
请按顺序学习,每一章都建立在前一章的基础上。
第一部分:入门准备(01-入门准备/)
| 文件 | 内容 |
|---|---|
| 01-认识FastAPI | FastAPI 是什么、为什么选它、Web API 基本概念 |
| 02-环境搭建 | 安装 Python、创建虚拟环境、安装依赖 |
| 03-第一个API程序 | Hello World、启动服务、自动交互文档 |
第二部分:FastAPI 基础(02-FastAPI基础/)
| 文件 | 内容 |
|---|---|
| 01-路径参数 | URL 中的动态参数、类型校验 |
| 02-查询参数 | ?page=1&size=10 这类参数的处理 |
| 03-请求体与Pydantic模型 | 接收 JSON 数据、数据校验 |
| 04-响应模型与状态码 | 控制返回的数据结构和 HTTP 状态码 |
| 05-表单和文件上传 | 处理表单提交和文件上传 |
| 06-错误处理 | HTTPException、自定义异常 |
| 07-依赖注入 | FastAPI 最核心的机制 Depends |
第三部分:SQLAlchemy 基础(03-SQLAlchemy基础/)
| 文件 | 内容 |
|---|---|
| 01-数据库与ORM入门 | 数据库、SQL、ORM 都是什么 |
| 02-安装与连接数据库 | engine、Session、连接 SQLite/MySQL |
| 03-定义数据模型 | 用 Python 类定义数据表(2.0 语法) |
| 04-增删改查CRUD | 最常用的数据库操作 |
| 05-表关系 | 一对多、多对多关系 |
第四部分:整合实战(04-整合实战/)
从这里开始,我们把 FastAPI 和 SQLAlchemy 结合起来,做一个「博客 API」项目(用户、文章、标签)。
| 文件 | 内容 |
|---|---|
| 01-项目结构设计 | 多文件项目怎么组织 |
| 02-数据库会话与依赖注入 | get_db 依赖、生命周期管理 |
| 03-用户接口实战 | 完整的用户 CRUD 接口 |
| 04-文章与标签接口 | 带关联关系的接口 |
| 05-分页搜索排序 | 列表接口的标配功能 |
第五部分:进阶主题(05-进阶主题/)
| 文件 | 内容 |
|---|---|
| 01-用户认证JWT | 注册、登录、Token 鉴权 |
| 02-中间件与CORS | 跨域、请求日志 |
| 03-数据库迁移Alembic | 表结构变更的正确姿势 |
| 04-自动化测试 | pytest + TestClient |
| 05-部署上线 | 生产环境部署方案 |
附录(06-附录/)
| 文件 | 内容 |
|---|---|
| 01-常见错误排查 | 新手最容易踩的坑 |
| 02-常用命令速查 | 命令和代码片段速查表 |
学习建议
- 一定要动手敲代码。只看不练是学不会编程的,每一章的代码都请自己敲一遍、跑起来。
- 遇到报错不要慌。先看报错信息的最后几行,再查 常见错误排查。
- 善用自动文档。FastAPI 自带的
/docs页面可以直接测试接口,是你最好的调试工具。 - 学完基础就去做项目。第四部分的博客项目请完整跟着做一遍,做完你就入门了。
准备好了吗?从 01-入门准备/01-认识FastAPI.md 开始吧!