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

你是否曾好奇,网页和App背后的“大脑”是怎么工作的?其实,它们背后有一个叫做“后端”的东西在默默运行。而FastAPI,就是这样一个可以帮助我们快速搭建后端服务的工具。
FastAPI 是一个使用 Python 编写的现代 Web 框架,非常适合用来创建 API(也就是程序与程序之间沟通的接口)。相比传统的 Flask 或 Django,它的优势是:
- 速度快:基于 Python 的
async异步特性,性能非常优秀。 - 自动文档生成:写好接口之后,它会自动生成漂亮的说明页面(Swagger 和 ReDoc)。
- 类型友好:支持 Python 的类型提示(type hints),让你写代码更清晰、少出错。
🎯 简单来说,FastAPI 帮你把数据从用户那里接收过来,处理后再返回出去。
⚙️ 第一步:环境准备(别担心,这一步超简单)

在开始写代码前,我们需要准备好开发环境。
✅ 安装Python
确保你的电脑已经安装了 Python 3.8 以上的版本。
👨💻 在终端输入:
python --version
如果输出类似 Python 3.12.x,就表示你已安装。
如果没有,请前往 官网 下载安装包。
✅ 安装 FastAPI 和 Uvicorn
我们需要两个工具:
fastapi:框架本体。uvicorn:启动服务器的工具。
👨💻 在终端执行以下命令:
pip install fastapi uvicorn
安装完成后,我们就准备好写第一个 FastAPI 程序啦!
🔑 第二步:核心概念讲解(用生活中的比喻帮你理解)

学习任何新知识,理解核心概念都是关键。下面是我们会用到的几个关键词:
1. API(应用程序编程接口)
想象一下你在餐厅点餐,服务员将你的订单传给厨房,再把菜送回来。这里的“服务员”,就可以类比为 API。
🔁 API 就是前后端之间的桥梁 —— 它接收请求、处理数据、然后返回结果。
2. 路由(Route)
每一个功能(比如登录、注册、获取数据)都有一个固定的地址,这个地址就叫“路由”。
比如:
/login登录接口/users获取所有用户列表/users/{id}根据 ID 获取特定用户信息
3. HTTP 请求方法(GET / POST / PUT / DELETE)
不同的操作对应不同的 HTTP 方法,就像你对朋友说的指令一样。
| 方法 | 描述 |
|---|---|
| GET | 获取资源,比如查看用户信息 |
| POST | 提交数据,比如注册账号 |
| PUT | 更新数据 |
| DELETE | 删除数据 |
4. 异步(async)
你可以把它理解成“同时做多件事”。比如你在等外卖的同时还能看视频。FastAPI 支持异步处理,效率更高。
🧪 第三步:动手实战!写一个简单的API项目

我们来一步步实现一个超级简单的 API:显示欢迎信息,并提供一个打招呼的功能。
Step 1:创建项目文件夹和代码文件
新建一个文件夹,比如叫 my_fastapi_project,在里面新建一个文件:main.py
Step 2:写第一个 Hello World 接口
打开 main.py,写下以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "你好,FastAPI!"}
解释一下这段代码:
FastAPI()创建了一个应用实例。@app.get("/")表示当访问根路径时,调用下面的方法。- 返回的是一个字典,会被自动转换成 JSON 格式。
Step 3:启动服务
回到终端,在 my_fastapi_project 文件夹下执行:
uvicorn main:app --reload
你会看到输出:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
🎉 这个时候,你的 FastAPI 后端服务已经在本地运行起来了!
Step 4:测试你的API
打开浏览器,访问 http://127.0.0.1:8000,你会看到:
{
"message": "你好,FastAPI!"
}
✅ 成功!你已经完成了一个最简单的接口!
Step 5:添加一个带参数的API
现在我们加一个“打招呼”的功能,比如访问 /hello/张三,返回 "Hello, 张三!"
修改 main.py:
@app.get("/hello/{name}")
def say_hello(name: str):
return {"message": f"Hello, {name}!"}
保存文件后访问:http://127.0.0.1:8000/hello/李四
你应该会看到:
{
"message": "Hello, 李四!"
}
📌 这里用到了变量 name,并且通过大括号 {name} 自动提取 URL 中的值。
Step 6:添加一个POST接口
现在我们来模拟用户注册功能。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
username: str
email: str
@app.post("/register")
def register_user(user: User):
return {
"status": "success",
"username": user.username,
"email": user.email
}
📝 解释:
BaseModel是 FastAPI 提供的数据模型工具,用于验证请求数据。user: User表示期望收到符合 User 结构的数据。- 会自动判断数据是否合法,如果不合法会返回错误信息。
🚀 测试步骤:
- 打开浏览器访问:
http://127.0.0.1:8000/docs - 点击
/register接口 - 点击 “Try it out”
- 输入:
{ "username": "Tom", "email": "tom@example.com" } - 点击 “Execute”
你应该能看到返回结果如下:
{
"status": "success",
"username": "Tom",
"email": "tom@example.com"
}
❓ 第四步:常见问题解答(FAQ)
如果你在使用过程中遇到这些情况,别慌,答案都在这里👇
❓ 1. 为什么运行不了?报错说找不到 uvicorn?
👉 可能没正确安装 uvicorn。
✅ 解决办法:
pip install uvicorn
❓ 2. 我改了代码但没有生效?
👉 使用了 --reload 参数吗?
✅ 正确命令应是:
uvicorn main:app --reload
这样代码有改动,会自动重启服务。
❓ 3. 访问不到我的接口?
👉 是否忘记关闭防火墙?或者用了错误的IP?
✅ 默认运行在 127.0.0.1:8000,确保你是在浏览器中访问此地址。
❓ 4. TypeError: expected string or bytes-like object?
👉 数据类型不匹配,例如你期望字符串,却传了数字。
✅ 检查你的函数定义,比如:
def say_hello(name: str): ...
你必须传入字符串,而不是数字或布尔值。
❓ 5. 遇到依赖冲突怎么办?
👉 可以使用虚拟环境隔离依赖。
✅ 推荐使用 venv 创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
🔁 第五步:下一步怎么学?推荐学习路径
恭喜你完成了FastAPI入门之旅!接下来你可以继续深入学习的内容包括:
✅ 学习内容建议:
| 阶段 | 内容 | 推荐练习 |
|---|---|---|
| 初级 | 路由、请求方法、数据模型 | 构建学生管理系统API |
| 中级 | 数据库连接(SQLAlchemy)、JWT鉴权 | 实现用户登录注册 |
| 高级 | 异步任务、WebSocket通信、部署上线 | 开发聊天室或在线商店后端 |
🛠 推荐学习资源:
- 【官方文档】https://fastapi.tiangolo.com/
- 【中文社区教程】https://fastapi.netlify.app/
- 【B站视频教程】搜索“FastAPI实战教学”
- 【书本推荐】《FastAPI 入门与实战》
🎉 总结回顾

在这篇教程中,我们完成了以下内容:
- 了解了什么是 FastAPI 以及它的应用场景;
- 搭建了 Python + FastAPI 的开发环境;
- 学习了基本概念和结构;
- 动手实现了多个小型 API;
- 解答了一些常见问题;
- 规划了后续的学习方向。
🎯 现在你已经是一个掌握基础的 FastAPI 新手开发者了!
继续加油,下一个惊艳的应用,也许就是你做的!
💬 如果你喜欢这篇教程,不妨收藏+分享给更多零基础的朋友吧~

评论 0