FastAPI 入门:Python 后端开发新手指南
🚀 开篇:FastAPI 是什么?它是做什么的?

大家好!欢迎来到《FastAPI入门》教程。无论你是编程小白,还是想从其他方向转到后端开发,这篇教程都会从零开始带你快速上手一个强大的 Python 后端框架——FastAPI。
什么是 FastAPI?
简单来说,FastAPI 是一个用来创建 Web 接口(API)的 Python 框架。你可以把它理解成一套“工具包”,让你用 Python 编写程序,让别人可以通过网络访问你写的程序、获取数据或者执行操作。
比如:
- 做一个天气查询接口
- 制作一个用户登录验证系统
- 创建一个可以被 App 调用的数据服务
FastAPI 的优点在于它 速度快、容易上手、自带文档界面,非常适合初学者和中小型项目使用。
⚙️ 环境准备:搭建你的第一个 FastAPI 开发环境

在我们正式动手之前,先来配置一下开发环境。这一步非常重要,就像搭积木要先准备好桌子一样 😊
🔧 安装要求
- 安装 Python(3.8 以上版本)
- 安装 pip(Python 包管理器)
- 安装 FastAPI 和 Uvicorn(用于运行 API 服务器)
✅ 小提示:如果你不确定是否已经安装了 Python,可以在命令行输入
python --version或python3 --version查看版本号。
Step-by-step 安装指南
1. 安装 FastAPI 和 Uvicorn
打开命令行工具(Windows 可以用 cmd,Mac/Linux 用终端),输入以下命令:
pip install fastapi uvicorn
如果一切顺利,你应该看到类似下面的输出:
Successfully installed fastapi uvicorn
2. 验证安装是否成功
接下来我们测试一下环境是否搭建成功。
新建一个文件,例如叫做 main.py,输入如下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
然后回到命令行,运行这个程序:
uvicorn main:app --reload
你会看到如下输出:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
现在打开浏览器,访问 http://localhost:8000,你会看到:
{
"message": "Hello, FastAPI!"
}
🎉 成功啦!你已经创建并运行了一个最简单的 FastAPI 接口!
📚 核心概念讲解:轻松理解 FastAPI 关键知识点

学习新框架的时候总会遇到一些专业术语,别担心,我来用通俗的语言解释给你听👇
1. API 是什么?
API 是 Application Programming Interface 的缩写,翻译过来就是“应用程序接口”。
我们可以把它想象成“自动点餐机”。当你在点餐机上按下“汉堡 + 可乐”,它就会自动把订单送到后台厨房制作。这个过程就类似于调用了一个 API。
在 FastAPI 中,我们就是负责编写这些“点餐机”程序的人。
2. FastAPI 的核心元素
✅ FastAPI 类对象
这是创建整个项目的起点。通常我们会这样初始化它:
from fastapi import FastAPI
app = FastAPI()
这里的 app 就是一个 FastAPI 应用实例。
✅ 路由(@app.get("/xxx"))
路由就像是“导航图”,告诉程序当用户访问哪个网址时应该返回什么内容。
例如:
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
上面这段代码表示:
- 当用户访问
/items/5这样的 URL 时,将调用函数read_item - 参数
item_id是整数类型,并会被自动解析
✅ 请求方法(GET / POST / PUT / DELETE)
不同的请求方式代表不同操作:
| 方法 | 用途 |
|---|---|
| GET | 获取数据 |
| POST | 提交数据(如注册) |
| PUT | 更新数据 |
| DELETE | 删除数据 |
示例:POST 请求
@app.post("/users")
def create_user(name: str, age: int):
return {"name": name, "age": age}
3. 自动文档功能(Swagger UI)
FastAPI 强大的地方之一是:它会自动为你生成接口文档页面!
启动服务器之后,访问:
- http://localhost:8000/docs:交互式文档
- http://localhost:8000/redoc:另一种风格的文档界面
你可以直接在这里调试接口,非常方便哦!
4. 数据校验(Pydantic)
FastAPI 内置了数据校验机制,比如参数类型、必填项等都可以自动检查。
示例:
class UserCreate(BaseModel):
username: str
password: str
email: Optional[str] = None
如果你传错了类型或漏了必填字段,FastAPI 会自动报错。
🛠️ 实战项目:做一个“学生信息管理系统”

纸上得来终觉浅,我们一起来做个简单但完整的项目练练手吧!
我们将实现以下功能:
| 功能 | 接口路径 |
|---|---|
| 查询所有学生 | GET /students |
| 添加学生 | POST /students |
| 查询单个学生 | GET /students/{id} |
1. 准备工作
在 main.py 中引入所需模块:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List, Optional
2. 定义数据模型
创建一个用于保存学生信息的数据结构:
class Student(BaseModel):
id: int
name: str
age: int
grade: Optional[str] = None
✅ 这里使用的是 Pydantic 的
BaseModel,专门用来做数据校验。
3. 创建模拟数据库(内存中)
因为还没学数据库连接,我们先用一个 Python 列表当作临时数据库:
students_db = [
Student(id=1, name="张三", age=20, grade="A"),
Student(id=2, name="李四", age=21, grade="B")
]
4. 编写接口函数
获取所有学生
@app.get("/students", response_model=List[Student])
def get_students():
return students_db
添加学生
@app.post("/students")
def add_student(student: Student):
students_db.append(student)
return {"message": "学生已添加"}
获取指定 ID 的学生
@app.get("/students/{student_id}", response_model=Student)
def get_student_by_id(student_id: int):
for student in students_db:
if student.id == student_id:
return student
return {"error": "未找到该学生"}
5. 测试接口
启动服务器:
uvicorn main:app --reload
你可以点击每个接口的“Try it out”按钮进行测试。
比如:
- 使用 POST 添加一个学生
- 使用 GET 查看所有学生
是不是超级方便!🎉
❓常见问题解答:新手常问的问题都在这里
💬 Q1:FastAPI 和 Flask 有什么区别?
| 对比项 | Flask | FastAPI |
|---|---|---|
| 学习曲线 | 更低 | 稍高(但不难) |
| 性能 | 一般 | 快很多(异步支持) |
| 文档功能 | 无内置 | 自带交互式文档 |
| 数据校验 | 不支持 | 支持(Pydantic) |
| 是否适合新手 | 适合 | 同样适合 |
👉 所以说,FastAPI 在现代 Web 开发中是非常有优势的。
💬 Q2:为什么不能访问 localhost:8000?
可能是以下几个原因:
程序没有正确启动
- 看命令行是否有异常报错
- 是否误写了文件名或类名?
端口冲突或被占用
- 可以尝试运行时改端口:
uvicorn main:app --host 0.0.0.0 --port 8080
- 可以尝试运行时改端口:
防火墙或浏览器限制
- 换个浏览器试试,比如 Chrome、Edge
💬 Q3:POST 请求总是报错?
检查是否有以下问题:
- 是否漏掉必填字段?
- 输入的类型是否匹配?(比如输入了字符串,但期望是数字)
- 请求头是否包含正确的
Content-Type: application/json
FastAPI 会自动返回详细的错误信息,根据提示修改即可!
📚 下一步学习建议:继续深入 FastAPI 的方向
恭喜你完成 FastAPI 的第一课!现在你已经可以独立写出一个小型 API 接口项目了。那么下一步该怎么走呢?我推荐你逐步掌握以下几个方向:
🔹 1. 连接真实数据库(如 SQLite、MySQL、PostgreSQL)
目前我们用的是模拟数据,下一步你可以学会如何连接真实的数据库,让数据永久存储。
常用技术:
- SQLAlchemy
- Alembic(数据库迁移)
- Tortoise ORM(异步友好)
🔹 2. 用户认证 & Token 机制
了解 JWT(JSON Web Token)、OAuth2 等授权机制,让 API 更加安全。
🔹 3. 文件上传与下载处理
有时候你需要允许用户上传图片、PDF 等文件。FastAPI 也很好地支持这部分功能。
🔹 4. 测试与部署
- 用 pytest 编写单元测试
- 部署项目到服务器(如 Docker、Nginx、云平台等)
🔹 推荐学习资源
- FastAPI 官方文档
- Real Python 教程
- B站/YouTube 上搜索 “FastAPI 新手教学”
- 加入 Python 开发者社区交流群组
🌈 结语:坚持练习,你也可以成为后端高手!
FastAPI 是一个非常现代化且友好的 Python 框架。通过本篇教程,你应该已经掌握了:
- 如何搭建 FastAPI 环境
- 如何创建和测试 API 接口
- 常见问题的解决方法
- 下一步的学习方向
记住一句话:“写出来的东西才真正属于自己。” 多写代码,多动手,你一定能成为出色的后端开发者!
如果你喜欢这篇文章,记得分享给更多需要的朋友哟 🙌
🔚 本文约 2786 字,涵盖从环境搭建到实战项目的完整流程,希望对你的编程之路有所帮助!如有疑问,欢迎留言提问~

评论 0