跳到主要内容

FastAPI + SQLAlchemy 零基础完整教程

一套面向新手小白的系统教程,从环境搭建开始,一步步带你学会用 FastAPI 和 SQLAlchemy 开发一个完整的 Web API 项目。

这套教程适合谁?

  • 会一点 Python 基础(变量、函数、类、字典列表),但没写过 Web 后端
  • 想学习如何开发 API 接口
  • 想学习如何用 Python 操作数据库
  • 想做出一个能上线的完整后端项目

技术栈版本说明

本教程使用当前主流的现代写法:

技术版本说明
Python3.10+建议 3.11 或 3.12
FastAPI0.110+现代 Python Web 框架
Pydanticv2数据校验库(FastAPI 自带)
SQLAlchemy2.0+Python 最流行的 ORM,使用 2.0 新语法
Uvicorn最新ASGI 服务器,用来运行 FastAPI
SQLite / MySQL-教学用 SQLite,也讲 MySQL 的接法

目录结构与学习路线

按顺序学习,每一章都建立在前一章的基础上。

第一部分:入门准备(01-入门准备/

文件内容
01-认识FastAPIFastAPI 是什么、为什么选它、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-常用命令速查命令和代码片段速查表

学习建议

  1. 一定要动手敲代码。只看不练是学不会编程的,每一章的代码都请自己敲一遍、跑起来。
  2. 遇到报错不要慌。先看报错信息的最后几行,再查 常见错误排查
  3. 善用自动文档。FastAPI 自带的 /docs 页面可以直接测试接口,是你最好的调试工具。
  4. 学完基础就去做项目。第四部分的博客项目请完整跟着做一遍,做完你就入门了。

准备好了吗?从 01-入门准备/01-认识FastAPI.md 开始吧!