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

在软件开发的世界里,后端(Backend) 是指负责处理数据、逻辑以及与数据库交互的部分。而 FastAPI 就是一个专门用来快速构建高效后端服务的 Python 工具。
🧠 类比一下:你可以把一个网站或应用看作是一家餐厅。前端是顾客看到的菜单和服务员,而后端就是厨房和厨师 —— 处理订单(请求)、准备食材(数据),然后返回结果。
FastAPI 的特点是:
- 速度快:基于 Starlette 和 Pydantic,接近 Node.js 速度
- 代码简洁:用 Python 写 API 非常直观
- 自动文档生成:写好接口就自动生成漂亮的网页文档(Swagger UI)
- 类型友好:支持 Python 类型提示,让你更容易写出安全、清晰的代码
🎯 适合人群:刚接触编程、想做 Web 开发的新手,或者对 Python 感兴趣的开发者。
环境准备:搭建你的第一个 FastAPI 开发环境


我们从最基础的安装开始,一步步带你配置开发环境。
✅ 步骤1:安装 Python
确保你已经安装了 Python,推荐使用 Python 3.8 及以上版本。
打开命令行(Windows 是 CMD 或 PowerShell;Mac 和 Linux 是 Terminal),输入:
python --version
如果你看到类似 Python 3.9.6 的输出,说明已安装成功。
如果没有,前往 Python官网 下载并安装最新版。
✅ 步骤2:安装 FastAPI 和 Uvicorn
FastAPI 是一个框架,需要配合一个叫做 Uvicorn 的服务器来运行。
在命令行中依次运行以下两个命令来安装它们:
pip install fastapi
pip install uvicorn
✅ 安装完成之后,你可以新建一个 Python 文件,比如叫 main.py,开始我们的第一个 FastAPI 应用。
✅ 步骤3:写一个最简单的 FastAPI 示例
打开你常用的编辑器(如 VS Code、PyCharm 或记事本),编写如下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, 我的第一个FastAPI程序!"}
保存为文件名 main.py。
然后在命令行中运行:
uvicorn main:app --reload
解释:
uvicorn是运行服务器的命令main:app表示在main.py中找到变量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关键知识点详解

虽然刚才只写了寥寥几行代码,但其实已经包含了 FastAPI 最核心的几个概念。下面我们来一一讲解。
🔹 路由(Route):设置路径地址
每个 API 接口都需要一个“路径”,就像网页中的 URL 一样。我们通过装饰器 @app.get() 来设置路径。
例如:
@app.get("/users")
def get_users():
return {"data": ["Alice", "Bob", "Charlie"]}
访问 http://localhost:8000/users 就可以看到返回的数据。
🔹 请求方法(HTTP 方法)
除了 GET,还有其他常见的请求方法:
| 方法 | 描述 |
|---|---|
| GET | 获取数据 |
| POST | 提交数据(如表单、登录) |
| PUT | 更新数据 |
| DELETE | 删除数据 |
FastAPI 对这些方法都有对应的支持:
@app.post("/login")
def login():
return {"status": "已登录"}
@app.put("/update-user")
def update_user():
return {"status": "用户信息更新成功"}
🔹 参数处理:让接口更灵活
有些接口需要动态传值,比如查询某个用户的详细信息,可以通过路径参数或查询参数来实现。
✦ 路径参数 Path Parameters
@app.get("/users/{user_id}")
def read_user(user_id: int):
return {"user_id": user_id}
访问:http://localhost:8000/users/123
输出:
{"user_id": 123}
⚠️ 注意:这里的 user_id 是整数类型,如果传的是字符串会报错,这正是 FastAPI 的强大之处:类型校验自动完成!
✦ 查询参数 Query Parameters
@app.get("/search")
def search(q: str = None, limit: int = 10):
return {"query": q, "limit": limit}
访问:http://localhost:8000/search?q=fastapi&limit=5
输出:
{"query": "fastapi", "limit": 5}
🔹 请求体 Body:接收 JSON 数据
当你需要用 POST 提交一些较复杂的数据时,就要使用请求体。
FastAPI 使用 Pydantic 模块来做数据模型校验。
先定义一个数据模型类:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
然后编写接口:
@app.post("/items/")
def create_item(item: Item):
return {"received": item.dict()}
调用时可以用 Postman、curl 或文档界面测试,发送 JSON 数据:
{
"name": "笔记本电脑",
"price": 8999.0,
"is_offer": true
}
FastAPI 会自动解析并验证字段是否完整、是否符合类型要求。
🔹 自动生成文档:开箱即用的强大功能
还记得我们前面访问的那个链接吗?
打开:http://localhost:8000/docs
你会看到一个非常酷的交互式 API 文档页面,这就是 FastAPI 自动帮你生成的 Swagger 页面。你可以在这里直接测试每个接口!
💡 这个文档可以用于展示给团队成员、产品经理,甚至是前端开发者来对接。
实战项目:做一个“图书管理系统”小项目
为了帮助你更好地掌握 FastAPI,我们来动手做一个实战小项目 —— 图书管理系统的简单 API 接口。
🧭 项目目标:
创建以下几个 API:
- 获取所有书籍
- 添加一本书
- 删除一本书
第一步:定义书籍数据模型
首先,我们定义一个书籍的数据结构。
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
# 数据模型
class Book(BaseModel):
title: str
author: str
year: int
price: float
第二步:模拟数据库存储数据
我们暂时用内存来模拟数据库:
books = [
{"title": "Python入门", "author": "李明", "year": 2021, "price": 45.9},
{"title": "Web开发实战", "author": "王芳", "year": 2022, "price": 69.5},
]
第三步:添加获取书籍列表的接口
@app.get("/books/", response_model=List[Book])
def get_books():
return books
📌 浏览器访问:http://localhost:8000/books/ 查看所有书籍列表。
第四步:添加一本书
@app.post("/books/add")
def add_book(book: Book):
books.append(book.dict())
return {"message": "书籍添加成功"}
📌 测试方式:
- 打开文档页面 http://localhost:8000/docs
- 在
/books/add接口中点击 Try it out - 填写 JSON 数据,点击 Execute 发送请求
第五步:删除一本书(按标题)
@app.delete("/books/delete/{title}")
def delete_book(title: str):
for book in books:
if book["title"] == title:
books.remove(book)
return {"message": f"《{title}》删除成功"}
return {"error": "未找到该书籍"}

📌 浏览器访问:http://localhost:8000/books/delete/Web开发实战
应该能看到删除成功的信息。
到这里为止,我们已经实现了基本的 CRUD 功能(Create、Read、Update、Delete),你可以继续拓展功能,比如:
- 支持分页查看书籍
- 修改某本书的信息
- 把数据存到真实数据库中(后面我们会讲)
常见问题解答
❓ Q1:我运行 FastAPI 出现 ModuleNotFoundError,怎么办?
常见错误:找不到模块如 fastapi、pydantic 等。
✅ 解决办法:
- 确认是否正确安装了对应包:
pip install fastapi uvicorn pydantic - 如果用了虚拟环境,确认当前终端激活了正确的虚拟环境。
❓ Q2:为什么我的 post 请求收不到数据?
可能原因:
- 没有导入
BaseModel - 接口函数没有正确声明参数类型
- 没有设置请求头为 JSON 格式
✅ 解决建议:
- 确保使用 Pydantic 模型作为请求体
- 用工具(如 Postman、curl)测试,检查请求内容是否格式正确
❓ Q3:FastAPI 支持数据库吗?
当然支持!虽然今天我们用了一个列表模拟数据库,但在实际项目中,你可以搭配 SQLite、MySQL、PostgreSQL 等多种数据库一起使用,后续学习可以深入这部分内容。
学习建议:下一步该怎么走?
恭喜你完成了 FastAPI 入门!接下来你可以在以下几个方向继续探索:
✅ 基础进阶学习路线图:
学习更多 FastAPI 特性
- 路由分组与标签
- 异常处理机制
- 用户权限控制(如 Token 认证)
连接数据库
- 使用 SQLAlchemy、Tortoise ORM 或 asyncpg
- 练习使用数据库进行 CURD 操作
部署上线
- 学习如何将项目打包部署到服务器(如 Nginx + Gunicorn/Uvicorn)
- 学习 Docker 部署 FastAPI 项目
结合前端项目
- 用 FastAPI 提供 API 接口,搭配 Vue.js 或 React 构建前后端分离项目
💡 推荐学习资源:
- 📘 官方文档:https://fastapi.tiangolo.com/
- 🎥 B站免费课程搜索 “FastAPI 教程”
- 🧠 Real Python:https://realpython.com/fast-api-python-web-apis/
- 🌐 GitHub 搜索关键词 “FastAPI 示例项目” 查看开源项目
总结
FastAPI 是一个非常适合初学者上手的现代后端框架。它不仅性能优异,而且拥有强大的自动文档和类型支持,使你可以专注于业务逻辑本身。
在这篇教程中,我们从零开始搭建了开发环境,理解了 FastAPI 的基本概念,并亲手实现了一个小型图书管理系统 API。希望你能继续坚持练习,逐步成长为一名合格的 Python 后端开发者!
📚 温馨提示:
初学不易,遇到困难请不要放弃。建议多敲代码、多查资料、多多实践,相信你一定能学会 FastAPI 并用它做出精彩的项目!
祝你 coding 快乐,成为一名出色的开发者!🚀

评论 0