前言
最近在做 Python Web 开发时,我重新认识了一个很适合新手上手的框架:FastAPI。它不像 Django 那样一上来就把你拉进庞大的配置体系里,也不像传统写法那样需要手工补一大堆接口文档。对初学者来说,最舒服的地方就在于——思路清晰、类型明确、上手就能出结果。
这篇文章不讲复杂原理,只围绕最基础、最实用的内容展开:环境安装、接口启动、参数接收、数据模型,以及如何用 FastAPI 跑通第一个接口。
FastAPI 是什么
在 Python Web 开发里,Django、Flask 和 FastAPI 都很常见,但它们的定位并不一样。
- Django:功能完整,适合做大型项目,但整体偏重。
- Flask:轻量灵活,扩展自由度高,但很多规范要自己补。
- FastAPI:主打高性能、类型提示和自动文档,写起来非常顺手。
对新手来说,FastAPI 的吸引力主要在三点:
- 接口文档会自动生成,不用额外维护。
- 借助 Python 类型提示,参数校验更直观。
- 写一个最小可运行接口非常简单,学习反馈很快。
环境搭建
FastAPI 依赖 Python 3.8 及以上版本,先确认本机解释器版本满足要求。然后安装 FastAPI 本体:
pip install fastapi -i https://mirrors.aliyun.com/pypi/simple/
这里的 -i 是指定 PyPI 镜像源,国内环境下下载会更稳定一些。
接着再安装一个 ASGI 服务器。开发和测试阶段最常用的是 Uvicorn:
pip install "uvicorn[standard]" -i https://mirrors.aliyun.com/pypi/simple/
跑通第一个接口
新建一个 main.py 文件,先把最小示例写出来。代码不复杂,关键是先把整体链路跑通:应用实例、路由、启动入口,这三件事理清楚了,后面就很好延展。
from fastapi import FastAPI
import uvicorn
# 1. 创建应用实例
app = FastAPI()
# 2. 定义路由
@app.get("/")
def root():
return {"message": "Hello World"}
# 3. 启动入口(也可以直接命令行启动)
if __name__ == "__main__":
uvicorn.run(app="main:app", host="127.0.0.1", port=8000)
这里的 main:app 可以理解成:去 main.py 这个文件里,找到名为 app 的应用对象并运行它。


