FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,由 Python 3.6+ 类型提示驱动。它旨在快速开发,同时不需要牺牲性能。FastAPI 使用 Starlette 作为 Web 框架和 Uvicorn 作为 ASGI 服务器。本文将带你通过实战案例轻松入门 FastAPI,并构建一个高效的 Web 应用。
FastAPI 简介
FastAPI 是一个高性能的 Web 框架,它具有以下特点:
- 类型安全:通过 Python 3.6+ 的类型提示来验证输入和输出。
- 自动文档:自动生成 Swagger UI 和 ReDoc 风格的 API 文档。
- 性能:使用 Starlette 和 Uvicorn 构建,提供高性能。
- 易于扩展:可以轻松添加中间件和依赖注入。
快速开始
安装 FastAPI 和 Uvicorn
首先,你需要安装 FastAPI 和 Uvicorn。你可以使用 pip 来安装:
pip install fastapi uvicorn
创建一个简单的 API
接下来,我们创建一个简单的 API,它将返回一个 JSON 响应。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
这个例子中,我们定义了一个名为 root 的异步函数,它将返回一个包含消息的 JSON 对象。
运行你的应用
要运行你的 FastAPI 应用,使用以下命令:
uvicorn main:app --reload
其中 main 是你的 Python 文件名,app 是你的 FastAPI 实例。
当你访问 http://127.0.0.1:8000/ 时,你应该会看到以下 JSON 响应:
{
"message": "Hello World"
}
实战案例:构建一个用户管理系统
在这个实战案例中,我们将构建一个简单的用户管理系统,它允许用户创建、读取、更新和删除用户。
1. 定义数据模型
首先,我们需要定义用户数据模型。我们将使用 Pydantic 来定义数据模型。
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
age: int
2. 创建用户路由
接下来,我们创建用户路由,用于处理用户相关的操作。
from fastapi import HTTPException, Depends, status
@app.post("/users/", response_model=User)
async def create_user(user: User):
# 在这里,我们将添加逻辑来创建用户
return user
@app.get("/users/{user_id}", response_model=User)
async def read_user(user_id: int):
# 在这里,我们将添加逻辑来读取用户
return {"id": user_id, "name": "John Doe", "age": 30}
@app.put("/users/{user_id}", response_model=User)
async def update_user(user_id: int, user: User):
# 在这里,我们将添加逻辑来更新用户
return user
@app.delete("/users/{user_id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_user(user_id: int):
# 在这里,我们将添加逻辑来删除用户
return
3. 运行应用
现在,你可以运行你的应用,并使用 Postman 或任何 API 测试工具来测试这些端点。
总结
通过本文,你了解了 FastAPI 的基本概念,并通过一个实战案例构建了一个简单的用户管理系统。FastAPI 是一个功能强大且易于使用的框架,非常适合构建高性能的 Web 应用。希望这篇文章能帮助你轻松入门 FastAPI。
