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

在学习编程的过程中,你可能听说过“后端”这个词。简单来说,后端就是负责处理网站或应用程序中不被用户直接看到的部分,比如验证登录、处理数据、与数据库交互等。
而 FastAPI 就是一个帮助我们快速构建这些后端功能的工具,它是用 Python 编写的。相比其他类似的框架(如 Flask 或 Django),FastAPI 的特点在于:
- 🚀 快速开发,性能接近纯 Python 的极限
- ✅ 自动生成 API 文档,不需要手动编写接口说明
- 🔍 支持自动类型校验,让你少写错代码
- 🧑💻 适合初学者,也适合大型项目
你可以用 FastAPI 来开发博客系统、电商平台的后端服务、甚至和前端(如 Vue 或 React)配合制作完整的 Web 应用。
现在我们就从最基础的环境搭建开始,一步步带你进入 FastAPI 的世界!
环境准备:搭建你的第一个FastAPI开发环境

第一步:安装 Python
FastAPI 是基于 Python 的,因此你需要先确保电脑上已经安装了 Python。建议使用 Python 3.7 及以上版本。
Windows 系统:
- 打开浏览器访问 https://www.python.org/downloads/
- 下载最新版本的 Python 安装程序(推荐下载稳定版,如 Python 3.10)
- 安装时勾选 “Add to PATH”,然后点击安装即可
Mac / Linux 用户:
一般情况下系统会自带 Python,你可以通过终端运行以下命令查看是否已安装:
python3 --version
如果没有安装,请按上述方式下载并安装。
第二步:创建虚拟环境(可选但强烈推荐)
为每个项目单独创建一个虚拟环境,可以避免不同项目之间依赖冲突。
在终端执行如下命令创建一个新的虚拟环境:
python -m venv myenv
激活虚拟环境:
Windows:
myenv\Scripts\activate.batMac/Linux:
source myenv/bin/activate
激活成功后,命令行前会有 (myenv) 这样的提示。
第三步:安装 FastAPI 和 Uvicorn
我们通过 pip 安装 FastAPI 及其依赖库(Uvicorn 是用来运行 FastAPI 项目的服务器引擎):
pip install fastapi uvicorn
等待安装完成后,我们可以开始写我们的第一个 FastAPI 程序啦!
核心概念:了解基本术语
下面是一些你在使用 FastAPI 时经常遇到的核心概念,我将用通俗的语言解释它们。
1. 接口(API)
API 是 Application Programming Interface(应用程序编程接口)的缩写。它就像一座桥,让你的前端页面和后端服务器能够“对话”。
例如,当我们在网页上点击“登录按钮”时,前端就把用户名和密码发送给后端 API,后端再根据输入的信息判断是否允许登录。
2. 路由(Route)
路由就像是通往某个功能的地址。你可以在你的应用中定义多个不同的“路径”,来分别处理不同的请求。
例如:
/表示主页/users表示获取用户列表/login表示处理登录逻辑
在 FastAPI 中,我们使用装饰器 @app.get()、@app.post() 来定义对应的路由及其请求方式(GET、POST 等)。
3. 请求方法(HTTP Methods)
常用的几种请求方法有:
| 方法名 | 含义 |
|---|---|
| GET | 获取资源,比如显示一篇文章内容 |
| POST | 提交数据,比如注册表单提交 |
| PUT | 更新数据,比如修改用户信息 |
| DELETE | 删除数据 |
4. 数据模型(Schema / Model)
在 FastAPI 中,我们可以使用 Pydantic(它内置的功能之一)来定义数据格式。这样做的好处是,系统会自动检查客户端发来的数据是否符合预期格式。
比如,一个注册表单通常包含用户名、邮箱和密码。可以用如下方式定义结构:
from pydantic import BaseModel
class UserCreate(BaseModel):
username: str
email: str
password: str
这样,如果用户少传了某个字段,FastAPI 会自动返回错误提示。
实战项目:构建你的第一个FastAPI项目
我们现在来做一个简单的项目:实现一个“留言本”的后端。包括以下功能:
- 显示所有留言
- 提交新留言
- 根据ID查询某条留言
让我们一步一步实现它吧!
第一步:创建项目文件
新建一个项目目录,比如叫 guestbook,并在其中创建一个文件 main.py,这是我们的主程序文件。
第二步:编写最简单的 GET 接口
打开 main.py,输入以下代码:
from fastapi import FastAPI
# 创建 FastAPI 实例
app = FastAPI()
# 定义一个 GET 路由,访问根路径时返回欢迎语句
@app.get("/")
def read_root():
return {"message": "欢迎使用 FastAPI!"}
保存后,在终端运行如下命令启动服务:
uvicorn main:app --reload
此时你应该可以看到类似这样的输出:
INFO: Started server process [PID]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000
现在,打开浏览器访问 http://127.0.0.1:8000,你会看到:
{"message": "欢迎使用 FastAPI!"}
太棒啦,你的第一个 FastAPI 接口跑起来了!
第三步:添加留言管理功能
我们要先定义数据模型和临时存储的数据结构(后续我们可以连接数据库来持久化存储)。
更新 main.py 内容如下:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List, Optional
# 初始化 FastAPI 应用
app = FastAPI()
# 模拟数据库(内存中的临时数据)
messages = [
{"id": 1, "name": "小明", "content": "你好!"},
{"id": 2, "name": "小红", "content": "加油,一起努力!"}
]
# 定义留言数据结构
class MessageCreate(BaseModel):
name: str
content: str
class MessageResponse(MessageCreate):
id: int
# 获取所有留言
@app.get("/messages/", response_model=List[MessageResponse])
def get_messages():
return messages
# 提交新的留言
@app.post("/messages/", response_model=MessageResponse)
def create_message(message: MessageCreate):
new_id = len(messages) + 1
new_message = message.dict()
new_message["id"] = new_id
messages.append(new_message)
return new_message
# 根据 ID 获取特定留言
@app.get("/messages/{message_id}", response_model=MessageResponse)
def get_message(message_id: int):
for msg in messages:
if msg["id"] == message_id:
return msg
return {"error": "找不到该留言"}
这个项目中有以下几个关键点:
我们定义了两种模型:
MessageCreate: 提交新留言需要的基本信息MessageResponse: 返回给用户的数据,包含了id字段
我们用了三种路由:
GET /messages: 获取所有留言POST /messages: 提交留言GET /messages/{id}: 查询指定留言
第四步:测试接口
我们可以直接使用浏览器测试 GET 请求,或者使用 Postman 测试 POST 请求。
你也可以直接在浏览器中访问:
- 查看所有留言:http://127.0.0.1:8000/messages/
- 查看某一条留言(如ID=1):http://127.0.0.1:8000/messages/1
另外,FastAPI 自带了强大的文档界面:
- 访问:http://127.0.0.1:8000/docs
这里你可以在线测试 API 接口,非常方便!
常见问题解答
刚开始学 FastAPI 的时候,可能会遇到一些常见问题。以下是几个典型的疑问及解答:
Q1:运行时报错 ImportError: No module named 'fastapi' 怎么办?
答: 说明你还没有正确安装 FastAPI。请确保使用的是当前虚拟环境,并执行:
pip install fastapi uvicorn
Q2:为什么我的接口不生效?一直返回404?
答: 请检查:
- 是否忘记加上装饰器
@app.get()、@app.post() - 路由地址是否拼写错误(大小写敏感)
- 是否重启了服务(如果你没有加
--reload参数)
Q3:能不能不使用虚拟环境?
答: 可以,但如果将来要做多个项目,强烈推荐使用虚拟环境,它可以避免各个项目的依赖相互影响。
Q4:FastAPI 自动生成的文档怎么来的?
答: FastAPI 会根据你编写的函数和类型注解自动生成文档,非常智能。这就是为什么我们定义了 response_model 的原因。
学习建议:下一步该学什么?
恭喜你完成了 FastAPI 入门教程!你现在可以独立写出带有接口的服务了。
接下来你可以继续深入学习以下内容:
✅ 数据库存储(比如 SQLite、MySQL、MongoDB)
目前我们只是把数据存在内存里,关掉服务就没了。真实项目中我们需要学会连接数据库保存数据。
✅ 使用 Pydantic 实现更复杂的数据校验
例如设置字段默认值、校验邮箱格式等。
✅ JWT 身份认证
如果你想开发登录注册功能,学习 JWT(JSON Web Token)是非常必要的技能。
✅ 部署上线
当你写完一个项目后,可以把你的 FastAPI 应用部署到云服务器(比如阿里云、腾讯云)或者用 Docker 容器打包发布。
总结
今天我们从零开始,一步步地介绍了:
- FastAPI 是什么、能做什么
- 如何搭建开发环境
- 理解基本概念(接口、路由、模型等)
- 动手完成了一个“留言本”的后端项目
- 解决了一些初学者常见的问题
- 并提供了进一步学习的方向建议
只要你跟着做一遍上面的实战项目,就已经具备了继续进阶的基础能力。别忘了多动手敲代码,多尝试改一改例子,才能真正掌握这项技能!
祝你在编程之路上越走越远!🚀

评论 0