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

你有没有想过,当你在浏览器上访问一个网站时,背后其实有一台电脑(服务器)正在为你工作?而“后端”,就是负责这些工作的代码部分。它的任务包括处理用户的请求、保存数据、执行计算等。
FastAPI 就是一个用来快速开发 Python 后端服务的框架。它可以帮助我们很容易地创建一个能被网页、App 或其他程序访问的接口(比如获取数据、提交信息)。
为什么说它是“快”的呢?因为它:
- 使用起来简单,适合初学者
- 自动生成文档,方便调试和分享
- 速度非常快,接近 Node.js 的性能
- 支持异步操作,处理并发更高效
在本教程中,你将从零开始学习如何用 FastAPI 写一个简单的后端应用。不需要任何后端基础,只需要一点点 Python 基础即可!
环境准备:搭建你的开发环境

工欲善其事,必先利其器。我们先来准备好工具和环境。
步骤1:安装 Python
确保你已经在电脑上安装了 Python 3.7 及以上版本。
你可以通过命令行输入以下命令查看当前 Python 版本:
python --version
如果没有安装或者版本太低,请前往官网 https://www.python.org/downloads/ 下载并安装最新版。
步骤2:创建虚拟环境(推荐)
为了避免不同项目的依赖冲突,建议使用虚拟环境。
在 Windows 上:
python -m venv fastapi_env
fastapi_env\Scripts\activate
在 macOS/Linux 上:
python -m venv fastapi_env
source fastapi_env/bin/activate
激活成功后,你会在命令行前看到 (fastapi_env) 的提示。
步骤3:安装 FastAPI 和 Uvicorn
FastAPI 本身只是一个框架,我们需要一个服务器来运行它。这里我们使用 Uvicorn 来作为运行 FastAPI 的服务器。
在激活虚拟环境后,输入以下命令安装:
pip install fastapi uvicorn
安装完成后,我们就可以开始写第一个 FastAPI 应用了!
核心概念:FastAPI 的三个关键词

为了让你快速理解,我们只讲最重要的三个概念:
API(Application Programming Interface)
API 就像一个服务员,当你需要菜单上的菜(数据),你就告诉 API 要什么,它会帮你去厨房取回来给你。路由(Route)
每个 API 都有一个地址,我们叫它“路由”。比如/hello这个地址就对应一个打招呼的功能。请求方法(HTTP Methods)
常见的方法有 GET、POST、PUT、DELETE 等。它们分别代表不同的动作:GET:获取数据POST:提交数据PUT:修改数据DELETE:删除数据
实战项目:做一个最简单的 API
我们要做的项目是一个返回问候语的小型 API,功能如下:
- 当用户访问
/hello地址时,返回{"message": "你好,世界!"}
第一步:新建项目文件
在你喜欢的编辑器(例如 VS Code)中创建一个文件夹,比如叫 my_fastapi_project,然后在里面创建一个名为 main.py 的文件。
第二步:编写你的第一个 FastAPI 应用
打开 main.py,写下下面这段代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def say_hello():
return {"message": "你好,世界!"}
解释一下这段代码:
FastAPI()创建了一个应用实例。@app.get("/hello")表示这是一个响应GET /hello请求的路由。say_hello是当这个路由被访问时执行的函数。- 它返回的数据会被自动转换成 JSON 格式。
第三步:启动应用
在终端中,进入 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)
说明服务已经启动成功了!
第四步:测试你的 API
现在打开浏览器,访问地址:
你应该能看到:
{
"message": "你好,世界!"
}
🎉 成功啦!你刚刚完成了一个属于自己的后端 API!
更进一步:带参数的 API 示例
接下来我们来做一个稍微复杂一点的例子:一个加法计算器。
功能描述:
- 用户访问
/add?a=3&b=5,应该返回{"result": 8} - 支持两个数相加
修改 main.py 如下:
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def say_hello():
return {"message": "你好,世界!"}
@app.get("/add")
def add_numbers(a: int, b: int):
return {"result": a + b}
现在访问这个 URL:
http://127.0.0.1:8000/add?a=3&b=5
你会发现结果是:
{
"result": 8
}
是不是很神奇?FastAPI 会自动从 URL 中提取参数,并帮你把它们变成整数!
自动生成文档:Swagger UI 和 ReDoc
FastAPI 强大的地方之一就是它自带了 API 文档系统。我们不需要手动写文档,只需要写好代码,就能生成漂亮的交互式接口说明。
在浏览器中访问:
你会看到一个交互式的界面,里面列出了你写的 API,还能直接点击 “Try it out” 发送请求!
也可以看看另一个风格的文档页面:
是不是很方便?这对于团队协作、对外提供接口都非常重要!
常见问题与解答
Q1:FastAPI 是不是必须配合数据库使用?
A:不是的。FastAPI 可以单独使用,即使没有数据库也能构建很多小功能,比如天气查询、翻译接口等。当然,大多数正式项目最终都会连接数据库。
Q2:我运行 uvicorn main:app --reload 的时候报错了,怎么办?
A:请检查几点:
- 是否在正确的目录下运行?
- 是否安装了 uvicorn?
- main.py 文件中是否真的定义了 app?
- 是否有拼写错误?
可以贴出具体错误内容到搜索引擎查找解决方案,或尝试重新安装 FastAPI:
pip install fastapi uvicorn --force-reinstall
Q3:返回的是中文,但显示乱码了?
A:一般来说,FastAPI 默认使用 UTF-8 编码,不会出现乱码。如果你遇到了类似问题,请确认:
- 浏览器是否支持中文字符
- 代码中的字符串是否有语法错误(比如引号不匹配)
- 返回的数据结构是否正确(比如没有嵌套太多层级)
Q4:能否用 POST 方法?怎么发送表单数据?
当然可以。我们来举个小例子:
新增一个 POST 接口:
@app.post("/greet")
def greet_user(name: str):
return {"message": f"你好,{name}!"}
你可以用 Postman 或 curl 测试它:
curl -X POST http://127.0.0.1:8000/greet -d "name=张三"
返回:
{
"message": "你好,张三!"
}
FastAPI 会自动解析表单数据、JSON 数据等格式。
学习建议:下一步该怎么做?
恭喜你完成了第一课!你现在能够:
- 搭建 FastAPI 开发环境
- 创建 GET、POST 类型的 API
- 理解基本的路由和参数使用
- 使用自动生成的文档调试接口
接下来,你还可以继续学习以下方向:
1. 使用 Pydantic 做数据校验
Pydantic 是 FastAPI 强力的伙伴,可以让你轻松定义复杂的数据模型并验证用户输入是否合法。
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
2. 连接数据库(如 SQLite、PostgreSQL)
FastAPI 不直接管理数据库,但它能很好地与 SQLAlchenmy、Tortoise ORM 等结合使用。
3. 使用异步(async)提升性能
对于高并发场景,使用 async 关键字可以让你的服务器同时处理多个请求,效率更高。
4. 部署你的 FastAPI 应用
学完开发之后,你可能希望把程序放到网上让别人也能访问。可以使用 Nginx + Gunicorn 部署,或者使用 Docker 容器化部署。
总结
FastAPI 是 Python 后端开发的新星,它简单易学、功能强大,特别适合刚入门的同学。本文从环境搭建到实战编码,带你一步步实现自己的第一个 API 接口。希望你能保持学习的热情,不断探索更多的功能。
记住一句话:后端就是为前端服务的程序,而 FastAPI 让这件事变得既简单又有趣。
如果你喜欢这种手把手教学风格,欢迎继续关注更多《后端开发新手系列》教程。祝你在编程之路上越走越远!💪🚀

评论 0