FastAPI入门:Python后端开发新手指南
如果你是第一次接触后端开发,那么你可能会觉得这个领域有很多新名词和概念,比如“接口”、“RESTful”、“路由”等等。但别担心,在这个教程里,我们将用最简单、最直观的方式来引导你使用一个强大的工具——FastAPI,快速上手 Python 后端开发。
我们不从理论讲起,而是直接动手做项目,边写代码边理解知识点,让你在实践中掌握技能。
一、什么是FastAPI?能用来做什么?


FastAPI 是一个基于 Python 的现代 Web 框架,专门用来构建后端 API(Application Programming Interface)。你可以把它想象成一个“自动化接待员”,它可以帮助你的网站或 App 接收用户发送的请求,并根据请求返回你需要的数据。
它的特点:
- 高性能:速度接近 Node.js 和 Go
- 自动生成文档:访问
/docs就能查看所有 API 接口,调试超方便 - 类型提示支持:帮你写更安全、更清晰的代码
- 适合初学者:语法简洁易懂,社区活跃
能做什么?
- 构建前后端分离的 Web 应用后台
- 提供数据接口给小程序、App 使用
- 实现用户登录、数据库查询等功能
二、环境准备:安装所需工具

工欲善其事,必先利其器。我们先来准备好开发环境。
步骤1:安装 Python
确保你已经安装了 Python 3.8 或以上版本。
检查命令:
python --version
如果没有安装,请前往官网 https://www.python.org/downloads/ 下载安装。
步骤2:创建虚拟环境(可选)
在项目目录下运行:
python -m venv venv
然后激活它:
Windows:
venv\Scripts\activateMac/Linux:
source venv/bin/activate
步骤3:安装 FastAPI 和 Uvicorn
Uvicorn 是运行 FastAPI 程序的服务器。
执行安装命令:
pip install fastapi uvicorn
三、核心概念讲解(实践版)
下面我们会介绍几个核心概念,并配上示例代码,帮助你理解它们的实际作用。
1. 创建第一个 FastAPI 应用
新建一个文件 main.py,输入以下内容:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "你好,欢迎来到我的第一个 FastAPI 接口"}
解释:
FastAPI()创建了一个应用实例@app.get("/")表示这是一个 GET 请求,路径是根目录/read_root()是这个接口的功能函数
运行方法:
uvicorn main:app --reload
main是文件名app是 FastAPI 实例名--reload是热加载模式,代码修改后会自动重启
打开浏览器访问:
你会看到如下输出:
{"message": "你好,欢迎来到我的第一个 FastAPI 接口"}
✨太棒啦!你现在有了一个可以运行的接口!
2. 添加一个新的接口
接着我们再添加一个接口用于打招呼:
@app.get("/hello/{name}")
def say_hello(name: str):
return {"message": f"你好,{name}"}
运行之后,访问:
http://localhost:8000/hello/小明
你会看到:
{"message": "你好,小明"}
说明:
{name}是路径参数(path parameter)name: str告诉 FastAPI 这个参数是字符串类型,也可以是 int、float、bool 等
3. 查询参数(Query Parameter)
有时候,我们需要传递额外的参数,例如:
@app.get("/search")
def search(query: str, limit: int = 10):
return {
"query": query,
"limit": limit
}
访问示例:
http://localhost:8000/search?query=苹果&limit=5
结果:
{
"query": "苹果",
"limit": 5
}
4. POST 请求与数据接收
GET 请求主要用于获取数据,POST 则用于提交数据。
例子:让用户注册账号
from pydantic import BaseModel
from typing import Optional
class User(BaseModel):
name: str
email: str
age: Optional[int] = None
@app.post("/register")
def register_user(user: User):
return {
"status": "success",
"data": user
}
说明:
BaseModel是 Pydantic 提供的数据模型类,帮我们定义参数格式Optional[int]表示这个字段可有可无
尝试使用 Postman 或 curl 测试:
curl -X POST http://localhost:8000/register \
-H "Content-Type: application/json" \
-d '{"name":"张三", "email":"zhangsan@example.com", "age":25}'
你会收到一个 JSON 响应:
{
"status": "success",
"data": {
"name": "张三",
"email": "zhangsan@example.com",
"age": 25
}
}
5. 自动生成文档:Swagger UI & ReDoc
FastAPI 的一大亮点就是自带接口文档。
访问:
- http://localhost:8000/docs —— OpenAPI 文档界面(交互式测试)
- http://localhost:8000/redoc —— ReDoc 风格文档
是不是非常方便?不用自己写文档,API 会自动整理出来。
四、实战项目:做一个简易的 Todo 管理系统
接下来,我们来做一个小项目,目标是实现以下功能:
- 获取所有待办事项
- 新增一个待办事项
- 删除一个待办事项
第一步:初始化项目结构
我们继续使用刚才的 main.py 文件。
第二步:定义数据模型与存储方式
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List, Optional
app = FastAPI()
# 数据模型
class TodoItem(BaseModel):
id: int
title: str
done: bool = False
# 临时数据库(内存中)
todos = [
TodoItem(id=1, title="学习 Python", done=True),
TodoItem(id=2, title="练习 FastAPI"),
]
# 存储 ID 计数器
current_id = 3
第三步:实现获取接口
@app.get("/todos", response_model=List[TodoItem])
def get_todos():
return todos
现在访问:
你应该会看到两个任务信息。
第四步:新增任务接口
@app.post("/todos", response_model=TodoItem)
def create_todo(todo: TodoItem):
global current_id
todo.id = current_id
current_id += 1
todos.append(todo)
return todo
试试使用 Postman 提交 JSON 数据:
{
"title": "完成 FastAPI 教程"
}
你会得到一个带 ID 的响应,并且刷新 /todos 接口能看到新增的任务。
第五步:删除任务接口
@app.delete("/todos/{todo_id}")
def delete_todo(todo_id: int):
for index, todo in enumerate(todos):
if todo.id == todo_id:
del todos[index]
return {"message": "删除成功"}
raise HTTPException(status_code=404, detail="任务未找到")

访问:
DELETE http://localhost:8000/todos/2
成功后会返回:{"message": "删除成功"}
如果任务不存在,会返回错误信息。
五、常见问题解答
❓我运行报错了:ModuleNotFoundError: No module named 'fastapi'
说明没有正确安装 FastAPI,回到第二步重新安装即可。
❓为什么访问接口时返回了 HTML 页面而不是 JSON?
确认你是否误用了浏览器访问 POST 接口。浏览器默认发送的是 GET 请求,建议用 Postman、curl 或者 Swagger 测试接口。
❓我写的程序无法识别中文怎么办?
Python 默认编码是 UTF-8,只要你在代码文件顶部加上:
# -*- coding: utf-8 -*-
并保存为 UTF-8 格式即可。
❓我可以不在本地运行吗?我想上线试试
当然可以。后续你可以学习部署到 Nginx + Gunicorn + FastAPI 的组合,或者使用像 Vercel、Railway 这样的平台。
六、下一步学习建议
完成了本教程,恭喜你已经掌握了 FastAPI 的基础使用!接下来你可以进一步学习:
- ✅ 数据库连接(如 SQLite、PostgreSQL)
- ✅ 用户认证与 Token 验证
- ✅ 异步编程与性能优化
- ✅ 单元测试和日志管理
- ✅ 接口鉴权(OAuth2/JWT)
- ✅ Docker 打包部署项目
总结
在这篇《FastAPI入门:Python后端开发新手指南》中,我们一步步搭建了开发环境,学习了基本的 GET/POST 请求处理,使用了 Pydantic 数据模型,还实战开发了一个 Todo 待办管理系统。
通过动手实践的方式,你已经迈出了成为一名后端开发者的重要一步。
记住一句话:“编程不是背出来的,是写出来的。” 多敲代码、多思考,就能越学越轻松!
祝你学得愉快,早日写出属于自己的接口服务 💻🚀

评论 0