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应用实例,并定义了两个路由:

  1. 根路由/返回一个简单的JSON消息。
  2. 路由/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无疑是一个值得考虑的选择。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部