第1章 - FastAPI 简介
嗨,朋友!我是长安。
这一章我来跟你聊聊 FastAPI 这个框架。说实话,我接触 FastAPI 的时候,真的被它惊艳到了——原来写后端接口可以这么简单、这么高效!
🤔 什么是 FastAPI?
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 Python Web 框架。
用大白话说:FastAPI 就是帮你快速写后端接口的工具。
比如你想做一个网站或者 App,需要:
- 用户登录接口
- 获取商品列表接口
- 提交订单接口
- ...
这些接口都可以用 FastAPI 来写!
🌟 为什么选择 FastAPI?
让我以一个过来人的身份,跟你说说为什么我强烈推荐 FastAPI。
1. 超级快 ⚡
FastAPI 是目前最快的 Python Web 框架之一,性能可以和 NodeJS、Go 媉美。我第一次看到这个性能对比的时候,真的被震惊了!
| 框架 | 每秒请求数 |
|---|---|
| FastAPI | ~30,000 |
| Flask | ~5,000 |
| Django | ~3,000 |
2. 超级简单 🎯
看看写一个接口有多简单,这是我当年第一次写的 FastAPI 代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def say_hello():
return {"message": "你好,世界!"}
就这么几行代码,一个接口就写好了!
3. 自动生成文档 📖
FastAPI 会自动帮你生成漂亮的 API 文档,不用自己写!这个功能简直太贴心了,给我省了不少时间。
启动服务后访问:
http://127.0.0.1:8000/docs- Swagger UI 文档http://127.0.0.1:8000/redoc- ReDoc 文档

4. 自动数据验证 ✅
FastAPI 会自动帮你验证请求数据,不用自己写一堆 if-else:
from pydantic import BaseModel
class User(BaseModel):
name: str # 必须是字符串
age: int # 必须是整数
email: str # 必须是字符串
@app.post("/users")
def create_user(user: User):
# FastAPI 自动验证数据,不合法会返回错误
return {"message": f"用户 {user.name} 创建成功"}
如果传入的数据不对,FastAPI 会自动返回清晰的错误信息:
{
"detail": [
{
"loc": ["body", "age"],
"msg": "value is not a valid integer",
"type": "type_error.integer"
}
]
}
5. 代码提示超棒 💡
因为 FastAPI 使用了 Python 的类型提示,所以在 VS Code 等编辑器中会有非常好的代码补全和错误提示。
🆚 和其他框架对比
| 特性 | FastAPI | Flask | Django |
|---|---|---|---|
| 性能 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| 学习难度 | 简单 | 简单 | 较难 |
| 自动文档 | ✅ | ❌ | ❌ |
| 数据验证 | ✅ 自动 | ❌ 手动 | ⚠️ 部分 |
| 异步支持 | ✅ 原生 | ⚠️ 需插件 | ⚠️ 部分 |
| 适合场景 | API开发 | 小型项目 | 大型网站 |
🎯 FastAPI 适合做什么?
✅ 适合:
- RESTful API 开发
- 微服务架构
- 前后端分离项目的后端
- 移动 App 的后端
- 数据接口服务
❌ 不太适合:
- 传统的服务端渲染网站(用 Django 更好)
- 需要大量现成功能的项目(Django 生态更丰富)
📝 小结
FastAPI 的核心优势(这是我的亲身体会):
- 快 - 性能极高,不输其他语言
- 简单 - 代码量少,易学易用,新手友好
- 自动文档 - 省去写文档的烦恼
- 数据验证 - 自动验证,减少 bug
- 类型提示 - 开发体验好
🏃 下一步
现在你已经了解了 FastAPI 的强大之处,是不是很期待?
别急,让我带你一步步来!先把开发环境搭建好!
Python 基础不够?
如果你对 Python 还不太熟悉,建议先看看: 👈 第0章 - Python 快速入门
💪 练习题
- 用自己的话说说 FastAPI 是什么?
- FastAPI 有哪些优势?
- FastAPI 适合做什么类型的项目?
答案提示
- FastAPI 是一个用 Python 写后端接口的框架
- 快、简单、自动文档、自动验证、类型提示
- API 开发、微服务、前后端分离项目
