Python FastAPI 快速搭建 Web API 教程
FastAPI 是一款高性能、易上手的 Python Web 框架,兼具开发效率与标准化特性,非常适合快速构建 API 及部署机器学习模型。本教程将复刻核心步骤,带你从零实现 HelloWorld 项目,快速掌握其基础用法。
一、FastAPI 核心优势
- 性能强劲,可媲美 NodeJS 和 Go,依托 Starlette 和 Pydantic 实现高效运行。
- 开发效率高,能提升 200%-300% 功能开发速度,减少 40% 人为错误。
- 支持自动补全和交互式文档,学习成本低,生产级代码健壮性强。
- 完全兼容 OpenAPI 和 JSON Schema 标准,生态工具丰富。
二、环境准备与安装
1. 创建项目与虚拟环境
先创建独立项目目录,再搭建虚拟环境隔离依赖:
mkdir fastwebprojects # 创建项目文件夹
cd fastwebprojects # 进入文件夹
python3 -m venv env/ # 创建虚拟环境(env为环境名称)
2. 激活虚拟环境
- Linux/Mac 系统:
source env/bin/activate
- 激活后终端会显示 (env) 标识,表明已进入虚拟环境。
3. 安装依赖包
安装 FastAPI 框架和 ASGI 服务器 Uvicorn:
pip install fastapi uvicorn
安装完成后,会自动同步 starlette、pydantic 等依赖组件。
三、编写 HelloWorld API
1. 创建主程序文件
在项目目录下新建 main.py 文件,写入以下代码:
from fastapi import FastAPI # 导入 FastAPI 类
app = FastAPI() # 实例化 FastAPI 应用
@app.get('/') # 定义 GET 请求的根路径(/)
async def root(): # 异步路径操作函数
return {'message': 'Hello World!'} # 返回 JSON 响应
2. 代码核心说明
- @app.get('/'):路由装饰器,指定当访问根路径时触发下方函数。
- async def root():异步函数,作为请求处理逻辑的核心,支持并发执行。
- 返回值:直接返回字典,FastAPI 会自动转换为 JSON 格式响应。
四、运行与访问 API
1. 启动服务器
在虚拟环境中执行以下命令,启动 Uvicorn 服务器:
uvicorn main:app --reload
- 命令解析:main 指 main.py 文件,app 是文件中实例化的 FastAPI 对象,--reload 开启热重载(代码修改后自动重启服务器,仅用于开发)。
2. 验证运行状态
启动成功后,终端会输出类似信息:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
表明 API 服务已在本地 8000 端口启动。
3. 访问 API 与文档
- 访问 API:打开浏览器输入 http://127.0.0.1:8000,可看到 JSON 响应:{"message": "Hello World!"}。
- 交互式文档:访问 http://127.0.0.1:8000/docs,可使用 Swagger UI 生成的可视化文档,支持在线调试接口。
- 备选文档:访问 http://127.0.0.1:8000/redoc,查看 ReDoc 风格的 API 文档。
五、OpenAPI 规范说明
FastAPI 基于 OpenAPI 规范(原 Swagger 规范)自动生成 API 模式,核心作用包括:
- 驱动内置的两款交互式文档系统,无需手动编写接口文档。
- 支持生成多种语言的客户端代码,方便前端、移动端对接。
- 定义 API 路径、参数、响应格式等标准,确保接口兼容性。