Python-FastAPI框架使用介绍
FastAPI是一个现代、快速(高性能)的Web框架,用于构建APIs,基于Python 3.7+版本。它的设计目标是使API的开发变得简单且高效,同时提供良好的性能和用户友好的开发体验。FastAPI是构建在Starlette(一个轻量级的ASGI框架)和Pydantic(用于数据验证和序列化)之上的。
一、安装FastAPI和Uvicorn
要开始使用FastAPI,首先需要安装FastAPI和Uvicorn(一个ASGI服务器)。可以通过以下命令进行安装:
pip install fastapi uvicorn
二、创建一个简单的API
在安装完成后,我们可以开始创建一个简单的API。以下是一个基本的FastAPI应用示例:
from fastapi import FastAPI
# 创建FastAPI实例
app = FastAPI()
# 定义一个根路由
@app.get("/")
async def read_root():
return {"message": "Hello, FastAPI!"}
# 定义一个带参数的路由
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "query": q}
在上面的代码中,我们创建了一个FastAPI应用实例,并定义了两个路由:
- 根路由
/
返回一个简单的JSON消息。 - 路由
/items/{item_id}
接受一个路径参数item_id
和一个可选的查询参数q
,返回包含这些参数的JSON响应。
三、运行应用
使用Uvicorn启动应用,命令如下:
uvicorn your_filename:app --reload
这里的your_filename
是保存上述代码的Python文件名。例如,假设你将代码保存为main.py
,则命令为:
uvicorn main:app --reload
--reload
参数使得在代码更改后自动重载应用,便于开发。
四、数据验证和序列化
FastAPI与Pydantic深度集成,支持数据验证和序列化。以下是一个示例,展示如何使用Pydantic模型来定义请求体:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 定义Pydantic模型
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
# 路由,接受一个Item对象
@app.post("/items/")
async def create_item(item: Item):
return {"item": item}
在这个示例中,我们定义了一个Item
模型,其中包含三个属性。通过定义请求体为Item
类型,FastAPI会自动验证请求数据,并在数据不符合预期时返回400错误。
五、生成文档
FastAPI自动为你的API生成交互式文档,使用Swagger UI和ReDoc。你可以在启动应用后访问以下网址:
- Swagger UI:
http://127.0.0.1:8000/docs
- ReDoc:
http://127.0.0.1:8000/redoc
这样,你可以直观地查看API的结构和功能。
六、总结
FastAPI是一个功能强大且易于使用的框架,适合快速构建API。在本文中,我们简单介绍了FastAPI的安装、基本用法,以及如何使用Pydantic进行数据验证。凭借其速度和简洁性,FastAPI正在成为现代Web开发中的一个热门选择。如果你在寻找简单而高效的方式来构建API,FastAPI无疑是一个值得考虑的选择。