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

你有没有想过,网页上的“提交”按钮,点击之后数据是怎么处理的?为什么有些网站加载那么快?这背后都有一个叫“后端”的系统在工作。而我们今天要讲的 FastAPI,就是一个帮你快速搭建这个“后端”的工具。
简单来说:
- FastAPI 是一个用 Python 写 Web 后端的框架。
- 它特别适合用来做“接口(API)”。
- 它速度快、功能强大,而且学习起来也很友好!
🎯 适合谁来学:
你不需要有任何编程经验,只要你会一点 Python 基础(比如变量、函数、字典),就可以开始跟着本教程一步步上手 FastAPI!
环境准备:你的第一个后端开发环境

✅ 第一步:安装 Python
如果你还没装 Python,先去 官网 下载最新版本(建议 Python 3.9 以上)。安装时记得勾选「Add to PATH」。
验证是否安装成功:
python --version
或:
python3 --version
✅ 第二步:安装 FastAPI 和 Uvicorn
打开终端(Mac/Linux)或者 CMD/PowerShell(Windows),运行以下命令安装必需组件:
pip install fastapi uvicorn
fastapi:核心框架uvicorn:用于启动服务的服务器
💡 小贴士:可以用虚拟环境(如 venv 或 conda)来管理依赖,避免包冲突。
✅ 第三步:测试安装是否成功
新建一个文件:main.py,写入下面这段代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
然后在命令行中运行:
python main.py
看到类似输出说明运行成功:
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
打开浏览器访问:
你将看到返回的 JSON 数据:
{
"message": "Hello, FastAPI!"
}
🎉 恭喜!你的第一个 FastAPI 接口跑起来了!
核心概念:理解几个关键词

刚接触新东西总是会遇到一堆专业术语,别担心,我来用大白话解释给你听。
🧩 路由(Route)
就像现实生活中有“路”,电脑世界也有“路” —— 它们叫作“路由”。每个网址(URL)对应一个处理程序,比如 /hello 对应打招呼的功能,/add 可能是加法功能。
例子:
@app.get("/hello")
def say_hello():
return {"data": "你好啊"}
当你访问 http://localhost:8000/hello 时,就会触发这个函数。
💡 请求方法(HTTP 方法)
常见的请求方法有:
| 方法 | 中文意思 | 用途 |
|---|---|---|
| GET | 获取信息 | 浏览页面、查数据等 |
| POST | 提交数据 | 表单提交、上传文件等 |
| PUT | 更新数据 | 修改已有信息 |
| DELETE | 删除数据 | 删掉某些内容 |
⚙️ 路径参数(Path Parameters)
如果你想让 URL 动态变化,比如根据 ID 查用户资料,你可以这样写:
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"id": user_id, "name": f"User {user_id}"}
访问:http://localhost:8000/users/123
结果会是:
{
"id": 123,
"name": "User 123"
}
📥 查询参数(Query Parameters)
这是 URL 中带问号的部分,例如:
http://example.com/search?keyword=book&limit=5
你可以这样取值:
@app.get("/search")
def search(keyword: str, limit: int = 10):
return {"keyword": keyword, "results_limit": limit}
即使你不传 limit,它也会默认为 10。
🗃️ 请求体(Request Body)
当你要传大量结构化数据(如注册用户信息)时,用 POST,并从 body 中读取。
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
@app.post("/register")
def register_user(user: User):
return {
"received": user.dict()
}
用 Postman 或 curl 发送如下 JSON:
{
"name": "小明",
"age": 25
}
你就能接收到这些数据啦!
实战项目:做一个简易的图书管理系统

接下来我们来实战一下,用 FastAPI 构建一个简单的图书管理系统。这个系统可以:
- 展示所有书籍
- 添加新书
- 查看某本书详情(通过ID)
🛠️ 第一步:创建基础结构
新建文件夹,比如叫做 book_api,在里面建立两个文件:
book_api/
├── main.py
└── books.json
把一些初始图书数据写进 books.json,格式如下:
[
{"id": 1, "title": "Python编程入门"},
{"id": 2, "title": "Web开发基础"}
]
🔨 第二步:编写 main.py
from fastapi import FastAPI
from typing import List
from pydantic import BaseModel
import json
app = FastAPI()
# 模型类
class Book(BaseModel):
id: int
title: str
# 加载数据
def load_books():
with open("books.json", "r", encoding="utf-8") as f:
return json.load(f)
# 保存数据
def save_books(books):
with open("books.json", "w", encoding="utf-8") as f:
json.dump(books, f, ensure_ascii=False, indent=4)
# 获取所有书籍
@app.get("/books", response_model=List[Book])
def get_books():
return load_books()
# 获取指定ID的书
@app.get("/books/{book_id}", response_model=Book)
def get_book(book_id: int):
books = load_books()
for book in books:
if book["id"] == book_id:
return book
return {"error": "未找到该书"}

# 添加一本书
@app.post("/books")
def add_book(book: Book):
books = load_books()
books.append(book.dict())
save_books(books)
return {"message": "书籍添加成功"}
▶️ 第三步:运行并测试接口
运行:
python main.py
访问:
- 查看所有书:http://localhost:8000/books
- 查某个书:http://localhost:8000/books/1
- 使用 Postman 或 curl 向
http://localhost:8000/books发送 POST 请求添加书籍(JSON格式)

{
"id": 3,
"title": "深入浅出数据库"
}
✅ 成功的话,books.json 文件里会出现这本书!
常见问题:初学者常问的问题解答
❓Q1:FastAPI 是不是必须搭配 Python?
是的,FastAPI 是基于 Python 的,所以你得先掌握基本的 Python 编程知识才能使用它。
❓Q2:FastAPI 和 Flask 有什么区别?
- Flask 更轻量级,适合小型项目;
- FastAPI 性能更好、支持异步编程,并且内置了自动文档生成,更适合现代 API 开发;
- 如果你是初学者,推荐优先尝试 FastAPI,因为它的设计更现代化、体验更好。
❓Q3:为什么不能访问我的服务?
请检查:
- 是否运行了服务?执行命令
python main.py; - 浏览器地址是否正确?默认是
http://localhost:8000; - 防火墙是否阻止?换台设备试试或者关掉防火墙。
❓Q4:POST 请求的数据怎么获取不到?
请确认你使用的是正确的 HTTP 客户端,如 Postman、curl 或者 Swagger UI 自带的调试工具发送请求,并确保数据格式是 JSON。
❓Q5:接口没有反应怎么办?
可能是函数没返回值,或者抛出了错误但没显示出来。你可以加上 print 日志、或者使用 try-except 来捕获异常。
学习建议:下一步怎么学?
✅ 继续进阶方向:
| 学什么 | 建议 |
|---|---|
| 异步支持 | 学 async def 函数,了解 await 的使用场景 |
| 数据库集成 | 连接 SQLite、PostgreSQL,使用 SQLAlchemy 或 Tortoise ORM |
| 用户认证 | JWT + OAuth2,实现登录功能 |
| 项目部署 | 学习 Docker 打包 FastAPI 应用,学会部署到云平台(如 Vercel、Railway) |
| 单元测试 | 使用 pytest 测试接口逻辑和边界情况 |
📚 推荐资源:
- 官方文档:https://fastapi.tiangolo.com
- GitHub 示例项目:搜索 “fastapi sample project”
- B站/YouTube 搜索 “FastAPI 入门”
🧠 温馨提醒:
不要一口气学太多理论,多写点代码,动起来才有感觉!
小结
在这篇《FastAPI 新手指南》中,我们从最基础的环境配置讲起,逐步讲解了核心概念,并完成了一个小项目 —— 图书管理系统。最后还解答了一些常见问题,并给出了学习路径建议。
只要你坚持动手练习,你也能很快成为一名合格的后端开发者!
📌 技术的学习从来不是一蹴而就的事,但每一步进步都离目标更近一点点。加油!
如有疑问欢迎留言,祝你编程之路顺利!

评论 0