FastAPI入门:Python后端开发新手指南
欢迎来到这篇专为零基础新手准备的**《FastAPI入门教程》**!
如果你对“后端”、“接口”或者“API”这些词还不是很清楚也没关系,我们会从最基础的概念讲起,并通过简单易懂的语言和一步步的实际操作带你快速上手使用 FastAPI 这个现代化的 Python 后端开发框架。
一、什么是 FastAPI?它有什么用?

快速了解 FastAPI
FastAPI 是一个基于 Python 的现代 Web 框架,用于构建 API(应用程序编程接口)。它的目标是让开发者用最少的代码、最快的速度来创建高性能、文档齐全的 RESTful 接口服务。
🔍 小贴士:你可以把 API 想象成一个“自动点餐机”,你告诉它要什么菜(比如:“请给我一份番茄炒蛋”),它就会返回对应的结果(比如:“这是你要的番茄炒蛋”)。
FastAPI 的优势:
- 基于 异步编程,性能高
- 支持 自动生成接口文档(Swagger 和 ReDoc)
- 内置类型检查,帮助减少错误
- 简洁的语法,适合初学者和高手
二、环境准备:搭建你的开发环境

在开始写代码之前,我们需要准备好以下内容:
所需工具清单
- Python 3.8 或以上版本
- pip —— Python 的包管理器
- 任意文本编辑器(推荐 VS Code)
第一步:安装 Python
Windows 用户:
- 前往 https://www.python.org/downloads/
- 下载最新稳定版 Python(如 Python 3.10 或更高)
- 安装时务必勾选“Add to PATH”
Mac/Linux 用户:
一般系统已自带 Python,可通过终端运行:
python3 --version
第二步:安装 FastAPI 和 Uvicorn
我们使用 pip 来安装 FastAPI 及其依赖。
打开命令行(Windows:cmd / PowerShell;Mac/Linux:Terminal),输入以下命令:
pip install fastapi uvicorn
fastapi:核心框架uvicorn:用于启动服务器的 ASGI 服务器
第三步:验证是否安装成功
新建一个文件叫 main.py,写入下面这段代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "欢迎来到我的第一个 FastAPI 程序!"}
保存后,在终端中运行:
uvicorn main:app --reload
你应该会看到类似如下输出:
INFO: Uvicorn running on http://127.0.0.1:8000
打开浏览器访问:http://localhost:8000,你会看到:
{
"message": "欢迎来到我的第一个 FastAPI 程序!"
}
🎉 太棒了!你已经跑通了一个 FastAPI 应用!
三、核心概念解析:用简单的语言说清楚重点
接下来我们要学习 FastAPI 中的一些关键概念。别担心,我们会用通俗易懂的方式讲解每一点。
1. 路由(Route)与请求方法
路由就像是“网页地址”,每个不同的地址可以提供不同的数据或功能。
常见的请求方法有:
- GET:获取信息(相当于读取)
- POST:提交信息(相当于新增)
- PUT:更新信息
- DELETE:删除信息
示例:添加一个 GET 和 POST 接口
修改 main.py:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "首页"}
@app.get("/hello")
def say_hello(name: str):
return {"message": f"你好,{name}"}
@app.post("/greet")
def greet_user(data: dict):
return {"received": data}
现在你可以访问:
GET /hello?name=小明→ 返回"你好,小明"POST /greet→ 提交 JSON 数据,例如{ "name": "张三", "age": 25 },会返回接收到的内容
💡 新手提示:参数可以直接写在函数参数中,FastAPI 会自动处理路径和查询参数。
2. 请求参数类型说明
有时候你想让用户输入数字、字符串等特定格式的内容,我们可以给函数参数加上类型注解,例如:
@app.get("/add")
def add_numbers(a: int, b: int):
return {"result": a + b}
访问 /add?a=3&b=5,你会看到结果为:
{"result": 8}
如果用户输入了非数字内容,比如 a=abc,FastAPI 会自动返回错误信息。
3. 自动生成文档的强大之处
FastAPI 最大的亮点之一就是:自动生成可视化 API 文档!
启动服务器后,访问:
- Swagger UI: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
这两个页面会展示你定义的所有接口,并允许你直接测试它们!
🌟 使用文档的好处:别人不需要阅读你的源码就能知道怎么调用接口,还能在线调试!
4. 异步支持(async def)
如果你想让你的程序执行多个任务不相互等待,可以使用异步功能:
import asyncio
from fastapi import FastAPI
app = FastAPI()
@app.get("/sleep")
async def sleep_example(seconds: int):
await asyncio.sleep(seconds)
return {"message": f"我睡了 {seconds} 秒钟"}
这样,当用户请求这个接口时,不会阻塞整个服务器。
四、实战项目:做个“学生信息管理系统”API
接下来我们将动手实践,做一个简单的“学生信息管理系统”。我们将实现以下功能:
| 功能 | HTTP 方法 | URL |
|---|---|---|
| 获取所有学生 | GET | /students |
| 添加一个学生 | POST | /students |
| 根据 ID 查询学生 | GET | /students/{student_id} |
步骤 1:定义学生模型
我们用 Pydantic 来定义数据结构,这样可以确保数据格式正确。
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
# 学生模型
class Student(BaseModel):
name: str
age: int
gender: str
# 模拟数据库
students_db = [
Student(name="小明", age=18, gender="男"),
Student(name="小红", age=19, gender="女")
]
步骤 2:实现接口
继续在 main.py 中编写:
# 获取全部学生
@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}")
def get_student(student_id: int):
if student_id < len(students_db):
return students_db[student_id]
else:
return {"error": "没有找到该学生"}
步骤 3:测试接口
重启 uvicorn 并访问 /docs 页面,就可以测试接口了:
- 发送 POST 到
/students,传入如下 JSON:{ "name": "小强", "age": 20, "gender": "男" } - 发送 GET 到
/students查看是否已添加
恭喜你,你已经完成了第一个完整的 FastAPI 项目!
五、常见问题解答(FAQ)
作为新手,一定会遇到一些疑问,这里列出几个常见的问题及解决办法。
Q1: “ImportError: No module named 'fastapi'” 怎么办?
答: 说明你还没安装 FastAPI。请运行:
pip install fastapi uvicorn
Q2: 修改代码后为什么没生效?
答: 如果你用了 --reload 参数,保存文件后应该自动重新加载。如果没有加,请手动停止再启动。
uvicorn main:app --reload
Q3: 出现 404 错误怎么办?
答: 确保你访问的是正确的 URL,比如 /students 和 /hello 是否拼写正确。
Q4: 如何查看详细的报错信息?
答: 在浏览器访问接口时出错,可以在终端里查看详细的 traceback 信息,从而定位错误。
Q5: FastAPI 和 Flask 有什么区别?
答:
| 对比项 | FastAPI | Flask |
|---|---|---|
| 类型 | 更现代的异步框架 | 经典同步框架 |
| 性能 | 高(支持异步) | 低(默认同步) |
| 自动文档 | 支持自动生成 | 不内置 |
| 类型支持 | 内置类型校验 | 不强制类型支持 |
六、下一步学习建议
学完本篇教程后,你已经具备独立开发基本 API 的能力。以下是几条推荐的学习路线:
✅ 建议 1:学习数据库连接
推荐使用 ORM 工具(比如 SQLAlchemy 或 Tortoise ORM)连接数据库,真正将数据持久化。
✅ 建议 2:学习身份认证机制
尝试使用 JWT 实现用户登录、权限控制等更复杂的场景。
✅ 建议 3:部署上线
学习如何用 Nginx + Gunicorn/Uvicorn 部署 FastAPI 到服务器,打造真正的生产服务。
✅ 建议 4:学习更多高级特性
- 文件上传与下载
- 流式响应
- WebSocket
- 中间件(Middleware)配置
结语:快去试试吧!

FastAPI 是一门非常适合初学者入门、又足够强大的框架。它不仅帮你写出清晰优雅的后端逻辑,还能提升你的开发效率和用户体验感。
你现在完全可以开始自己的小项目啦,比如:
- 天气查询接口
- 留言板服务
- 个人博客 API
🧠 温馨提醒:多写代码,多看文档。遇到问题先查官方文档,再搜索资料,最后再问别人。
祝你在成为 Python 后端开发工程师的路上越走越远!🚀
✅ 完整示例代码 GitHub 地址(模拟)
👉 https://github.com/example/fastapi-beginner-tutorial
需要进阶内容或者答疑可以留言,我们下期再见!👋

评论 0