FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,具有 Python 3.6 及以上版本的支持。它基于标准 Python 类型提示。
FastAPI 架构
FastAPI 的架构基于两个主要组件:
- Starlette:用于 Web 框架的轻量级 ASGI 框架/工具包,用于 Web 服务器和 Web 框架之间。
- Pydantic:用于数据验证和设置管理的库,使用 Python 类型提示。
主要特点
- 快速:非常高的性能,与 NodeJS 和 Go 相当。
- 简单:易于学习,减少开发时间。
- 健壮:具有自动重载、交互式文档等。
- 标准化:基于(并完全兼容)API 的开放标准。
基础代码案例
下面是一个简单的 FastAPI 应用程序示例,它定义了一个路径操作,该操作接收一个查询参数并返回它。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 定义一个简单的模型
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
在这个例子中,我们定义了一个名为 Item
的模型,它包含三个字段:name
、price
和 is_offer
。然后,我们定义了一个路径操作 /items/{item_id}
,它接受一个名为 item_id
的路径参数和一个名为 q
的可选查询参数。
要运行此应用程序,您可以使用以下命令:
uvicorn main:app --reload
这将使用 Uvicorn(一个 ASGI 服务器)来运行您的 FastAPI 应用程序。--reload
参数表示服务器将在代码更改时自动重新加载。
这只是一个非常基础的示例,FastAPI 还有很多其他高级功能,如请求体、依赖注入、安全性等。希望这能帮助您快速了解 FastAPI 的基础架构和用法。