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

在互联网世界里,前端是你在网页或手机App上看到的部分,而后端则是运行在服务器上的程序,用来处理数据、响应请求、管理逻辑。
FastAPI 就是一个用 Python 写的“快速搭建后端服务”的框架。它的主要特点是:
- 🚀 速度快:性能媲美 Node.js 和 Go
- 📝 自动文档:写好接口就能自动生成在线 API 文档(Swagger + Redoc)
- ✅ 类型提示支持好:Python 3.6+ 的语法糖让你写代码更清晰
- 🧩 结构清晰:适合快速构建 RESTful 风格的 Web 服务
如果你是编程新手,并且想快速了解如何做一个能被前端调用的服务(比如一个用户登录接口),那 FastAPI 是非常好的学习起点!
环境准备:你需要做哪些准备工作?

步骤1:安装 Python
确保你电脑已经安装了 Python。推荐使用 Python 3.8 或更高版本。
打开终端(Mac/Linux)或命令行工具(Windows),输入:
python --version
如果输出类似 Python 3.10.x,说明安装好了。否则请前往 https://www.python.org/downloads/ 下载安装最新版 Python。
步骤2:安装 FastAPI 及其依赖
我们使用 pip 来安装 FastAPI。建议为项目创建一个新的虚拟环境(Virtual Environment),保持全局干净。
安装虚拟环境(可选但推荐)
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
安装 FastAPI 和 uvicorn(服务器)
pip install fastapi uvicorn
这样我们就准备好开始写第一个 FastAPI 程序啦!
核心概念:从零理解 FastAPI 的基本术语

我们先从最简单的例子讲起,再逐步认识这些专业术语:
第一个 FastAPI 应用
创建一个文件 main.py,写入以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "欢迎来到我的第一个 FastAPI 接口!"}
然后启动服务:
uvicorn main:app --reload
访问 http://localhost:8000 就能看到 JSON 格式的返回内容。
重点概念解释(初学者友好)
| 概念 | 解释 |
|---|---|
| FastAPI | 一个用于快速构建 API 的框架 |
| @app.get("/") | 表示这是一个 GET 请求接口,路径为根 / |
| 函数 def read_root() | 当有人访问这个路径时会执行的函数 |
| return | 返回给前端的数据,格式通常是 JSON |
路由与请求方法
常见的 HTTP 请求方法有:
GET:获取数据POST:提交数据PUT:更新数据DELETE:删除数据
例如,加一个 POST 接口:
@app.post("/hello")
def say_hello(name: str):
return {"message": f"你好,{name}!"}
你可以用浏览器试试吗?抱歉,POST 不能直接用地址栏访问。我们稍后用 Postman 或 curl 工具测试。
数据验证 & 类型注解
FastAPI 强大的地方在于可以自动帮你检查数据类型:
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
在这个例子中:
item_id是必须的整数q是一个可选字符串
如果传错类型,FastAPI 会返回错误信息,帮你避免很多 bug!
实战项目:做一个天气查询 API 吧!

接下来我们动手写一个简单的项目:根据城市名返回该城市的天气信息。
第一步:新建项目文件夹
假设你的项目结构如下:
weather_project/
│
├── main.py
└── weather_data.py
第二步:模拟天气数据(简单版本)
在 weather_data.py 中添加:
# 假设这是“数据库”中的数据
weather_db = {
"北京": {"temp": 25, "condition": "晴"},
"上海": {"temp": 27, "condition": "多云"},
"广州": {"temp": 32, "condition": "雨"},
}
第三步:编写主程序 main.py
from fastapi import FastAPI
from typing import Optional
from weather_data import weather_db
app = FastAPI()
@app.get("/weather/{city}")
def get_weather(city: str, unit: Optional[str] = "celsius"):
data = weather_db.get(city)
if not data:
return {"error": "城市不存在,请确认拼写是否正确"}
result = {
"city": city,
"temperature": data["temp"],
"condition": data["condition"]
}
if unit == "fahrenheit":
result["temperature"] = data["temp"] * 9 / 5 + 32
return result
现在运行服务:
uvicorn main:app --reload
打开浏览器访问:
👉 http://localhost:8000/weather/北京
你将看到返回的天气信息:
{
"city": "北京",
"temperature": 25,
"condition": "晴"
}
或者带参数的版本:
👉 http://localhost:8000/weather/广州?unit=fahrenheit
你会看到温度变成了华氏度。
自动文档生成:不用写文档,FastAPI 帮你搞定!
还记得上面写的那些接口吗?现在去访问:
你就可以看到一个交互式的 API 文档界面!你可以直接在界面上试用每个接口,非常适合调试和协作。
💡 这个功能叫 Swagger UI,是 FastAPI 最受欢迎的功能之一!
常见问题解答:新手容易遇到的问题汇总
Q1: 执行 uvicorn 报错 “ModuleNotFoundError”
A:确认你安装了 FastAPI 和 uvicorn,可以用下面命令重新安装:
pip install fastapi uvicorn
Q2: 如何调试我的 FastAPI 项目?
A:
- 使用 IDE(如 VSCode 或 PyCharm)设置断点调试
- 使用日志模块(logging)输出信息
- 添加
--reload参数,在代码修改后自动重启服务器
Q3: 我想让接口接收 JSON 数据怎么办?
A:使用 Pydantic 模型来定义结构,比如:
from pydantic import BaseModel
from fastapi import FastAPI
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
def create_item(item: Item):
return {"message": "已收到商品信息", "data": item}
这样当别人发送一个符合要求的 JSON 给你时,FastAPI 会自动解析成对象。
Q4: 怎么测试 POST 接口?
A:可以使用:
- Postman
- 浏览器插件
- 命令行工具 curl:
curl -X POST http://localhost:8000/items/ -H "Content-Type: application/json" -d '{"name":"苹果","price":5.99}'
Q5: 如何部署到服务器?
A:本地调试没问题后,可以打包发布:
- 使用 Gunicorn + Uvicorn 生产级启动
- 部署到云服务器(如阿里云、腾讯云)
- 用 Docker 容器化部署
后续进阶章节我们会详细讲。
学习建议:学完 FastAPI 后该往哪里走?
恭喜你完成了 FastAPI 的第一个项目!以下是下一步建议的学习方向:
🔹 初级目标:
✅ 掌握 FastAPI 的基础使用
✅ 能独立写出 RESTful 风格的 API
✅ 会用 Postman/curl 测试接口
🔹 进阶学习方向:
| 主题 | 建议学习资料 |
|---|---|
| 数据库操作 | SQL + SQLAlchemy,或 NoSQL(MongoDB) |
| 用户认证 | JWT、OAuth2 |
| 部署上线 | Nginx + Gunicorn + FastAPI |
| 单元测试 | pytest + FastAPI 提供的测试客户端 |
| 自动化部署 | Docker + GitHub Actions |
推荐进一步学习的资源:
- FastAPI 官方文档:https://fastapi.tiangolo.com
- Python 编程从入门到实践(书籍)
- B站、YouTube 上搜索 “FastAPI 教程” 有很多实战项目
- 加入技术社区交流(如知乎、掘金、Stack Overflow)
结语:从今天开始,你已经是后端开发者了!
也许你之前从没接触过后端开发,但现在你已经掌握了:
- 什么是 API?
- 如何用 FastAPI 创建 Web 接口?
- 如何测试和文档化你的接口?
- 如何开始做自己的项目?
不要害怕继续深入学习,每一步都会让你成长。FastAPI 是你通往 Python 全栈开发之路的第一座桥。
Keep Coding,未来可期!
📌 如果你觉得这篇教程对你有帮助,请分享给更多想入门后端的同学吧!🌟

评论 0