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

你可能听说过“网站”、“App”,或者“后端服务”这些词,但它们到底是什么?简单来说:
- 前端是用户能看到的部分,比如网页和手机App;
- 后端负责处理数据、逻辑运算和提供接口(也就是前后端通信的桥梁);
而FastAPI就是一个用来写后端服务的强大工具。它用 Python 编写,功能强大而且学习曲线平缓,非常适合刚接触编程的新手。
FastAPI 的特点包括:
- 支持异步编程
- 自动生成接口文档(Swagger 和 ReDoc)
- 高性能,接近 Node.js 和 Go 的水平
- 强类型支持,减少错误
- 易于测试和部署
这篇文章将从零开始带你看懂什么是 FastAPI,如何搭建环境,并完成一个简单的项目——让我们一起迈出成为后端开发者的第一步!
环境准备:搭建你的第一个 FastAPI 开发环境

第一步:安装 Python
FastAPI 基于 Python,所以你需要先安装 Python。
👉 到 https://www.python.org/downloads/ 下载对应系统的 Python 安装包。安装时记得勾选 “Add to PATH”。
安装完成后,在终端或命令行输入以下命令检查是否安装成功:
python --version
你应该看到类似这样的输出(版本号可能会不同):
Python 3.10.4
第二步:安装 FastAPI 和 Uvicorn
FastAPI 只是一个框架,要运行它还需要一个服务器来支持,这里我们使用 Uvicorn。
打开终端或命令行,执行以下两条命令:
pip install fastapi
pip install uvicorn
💡 提示:如果遇到权限问题,可以在命令前加 sudo(Mac/Linux),或者以管理员身份运行命令提示符(Windows)。
第三步:验证安装
创建一个新文件,命名为 main.py,在其中写下以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, World!"}
这段代码创建了一个最简单的 FastAPI 应用。保存之后,回到终端运行:
uvicorn main:app --reload
如果你看到以下内容,说明一切正常:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [PID]
INFO: Started server process [PID]
INFO: Waiting for application startup.
INFO: Application startup complete.
现在打开浏览器访问 http://127.0.0.1:8000,你会看到:
{"message":"Hello, World!"}
太棒了!你已经成功运行了一个 FastAPI 服务!
核心概念:理解 FastAPI 的工作方式

FastAPI 是基于 Web API 构建的,这意味着我们主要通过定义路由来响应请求。下面是一些你在学习过程中会频繁遇到的核心概念。
1. 路由(Route)
路由就是告诉程序:“当用户访问这个地址的时候,我要返回什么内容。”
例如前面例子中的:
@app.get("/")
def read_root():
return {"message": "Hello, World!"}
这里的 / 就是根路径,get() 表示这是一个 GET 请求(比如浏览器访问网址通常都是 GET 请求)。这个函数会返回一段 JSON 数据。
你可以尝试添加一个新的路径 /hello:
@app.get("/hello")
def say_hello():
return {"say": "Hello again!"}
访问 http://127.0.0.1:8000/hello 就可以看到新的结果。
2. 请求方法(GET、POST等)
不同的请求类型有不同的用途:
| 方法 | 含义 |
|---|---|
| GET | 获取数据(常见于读取信息) |
| POST | 发送数据(常用于提交表单或登录) |
你可以这样写一个 POST 接口:
@app.post("/login")
def login():
return {"status": "logged in"}
使用 Postman 或 curl 测试一下效果吧!
3. 参数传递
有时我们需要从 URL 或请求中获取参数。FastAPI 支持多种传参方式:
路径参数(Path Parameters)
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"id": user_id}
访问 /users/123 就能接收到参数 123。
查询参数(Query Parameters)
@app.get("/search")
def search(q: str):
return {"query": q}
访问 /search?q=hello 将得到 {"query": "hello"}。
4. 自动文档生成
当你访问:
- http://127.0.0.1:8000/docs —— Swagger UI
- http://127.0.0.1:8000/redoc —— ReDoc
你会发现 FastAPI 已经自动生成了漂亮的接口文档!这非常适合团队协作和调试。
实战项目:写一个待办事项(Todo)管理系统

接下来我们将做一个小项目:实现一个简单的 Todo 应用,可以创建任务并查看所有任务列表。
第一步:规划功能
我们要做的功能如下:
- 创建一个 todo 任务
- 获取所有 todo 列表
第二步:编写模型类(Model)
在 Python 中我们可以使用 Pydantic 来定义数据模型。
新建文件 models.py:
from pydantic import BaseModel
class Todo(BaseModel):
name: str
description: str
completed: bool = False
这表示每个 todo 有名称、描述和状态。
第三步:编写主程序
修改 main.py:
from fastapi import FastAPI
from models import Todo
app = FastAPI()
todos = []
@app.post("/todos")
def create_todo(todo: Todo):
todos.append(todo)
return {"message": "Todo added"}
@app.get("/todos")
def get_todos():
return {"data": todos}
第四步:运行服务并测试
再次运行服务:
uvicorn main:app --reload
点击 /todos 的 POST 接口 → “Try it out” → 输入如下 JSON:
{
"name": "Buy groceries",
"description": "Need to buy milk and bread"
}
然后点击 “Execute”。你会看到一个成功的响应。
接着点击 /todos 的 GET 接口查看所有任务。
常见问题解答
Q1: 启动时报错说找不到模块怎么办?
可能是你没有正确安装依赖库。请依次运行:
pip install fastapi
pip install uvicorn
pip install pydantic
确保拼写无误,且在正确的环境中运行。
Q2: 出现“address already in use”错误怎么办?
这说明 8000 端口被占用了。你可以换一个端口号启动:
uvicorn main:app --port 8001 --reload
Q3: 接口文档没出现?
确认你的代码里有没有拼写错误,如 app.get('/') 正确吗?
如果没问题还看不到文档,请尝试刷新页面或更换浏览器。
Q4: 想同时运行多个服务可以吗?
当然可以。只要使用不同的端口即可:
uvicorn another_app:app --port 8001 --reload
学习建议:下一步学什么?
恭喜你完成了 FastAPI 的第一次实践旅程!你可以继续探索这些方向:
1. 持久化存储
现在的数据都存到内存里,重启就没了。可以尝试连接数据库,比如 SQLite、MySQL 或 MongoDB。
2. 用户认证与安全
学习 JWT、OAuth2 等机制来保护你的 API。
3. 异步处理
了解 async/await 关键字,让你的服务支持高并发。
4. 部署上线
使用 Docker、Gunicorn、Nginx 等技术将你的服务部署到真实服务器上。
写在最后
FastAPI 是一个现代又强大的工具,它的设计哲学非常贴近程序员的需求,尤其是对于初学者友好。希望这篇《FastAPI 入门教程》让你体验到了后端开发的乐趣。
如果你发现这篇文章对你有帮助,不妨收藏起来,作为你通往程序员之路的第一把钥匙。后续我们也会陆续发布更深入的内容,敬请关注!
Happy Coding ✨

评论 0