Python高性能web框架——FastAPI快速入门

FastAPI 是一个用于构建 APIs 的现代、快速(高性能)web框架,基于标准 Python 类型提示。它的速度与 Node.js 和 Go 相媲美,支持异步编程,适合用于构建快速、可扩展的web应用程序。FastAPI 的目标是提高开发者的生产力,它使用 Python 的型别提示来自动生成文档,更加易于理解和使用。

安装 FastAPI

首先,我们需要安装 FastAPI 和用于 ASGI 服务器的 uvicorn。可以使用 pip 来安装它们:

pip install fastapi uvicorn

创建第一个 FastAPI 应用

接下来,我们将创建一个简单的 FastAPI 应用,展示一些基本功能。下面是一个代码示例,展示如何设置一个简单的 API 服务。

# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

在这个例子中,我们定义了一个 FastAPI 应用,并创建了两个路由。第一个是根路径 /,返回一个简单的 JSON 响应。第二个是带参数的路径 /items/{item_id},它接收一个整数的 item_id 和一个可选的查询参数 q

运行应用

要运行 FastAPI 应用,在终端中执行以下命令:

uvicorn main:app --reload

--reload 标志使服务器在代码更改时自动重启,非常适合开发阶段。

然后你可以在浏览器访问 http://127.0.0.1:8000 查看根路径,访问 http://127.0.0.1:8000/items/1?q=test 可以测试带参数的路由。

自动生成文档

FastAPI 的一个显著特点是它能自动生成 API 文档。你可以访问 http://127.0.0.1:8000/docs 来查看基于 Swagger UI 的文档,或者访问 http://127.0.0.1:8000/redoc 来查看 ReDoc 风格的文档。

这使得它非常方便开发、测试和维护 API。

请求体和响应模型

FastAPI 还支持使用 Pydantic 来定义请求体和响应的数据模型。以下是一个示例:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None

@app.post("/items/")
def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price, "is_offer": item.is_offer}

在这个例子中,我们定义了一个 Item 类,使用 Pydantic 的 BaseModel 来描述请求体中的数据结构。当我们发送一个 POST 请求到 /items/ 路径时,FastAPI 会自动解析请求体并验证数据。

结束语

FastAPI 是一个非常强大的框架,它通过类型提示和自动文档生成,大大提高了开发者的效率。它还支持异步编程,非常适合需要高性能的应用场景。无论是简单的 API 还是复杂的微服务架构,FastAPI 都能提供良好的支持。希望通过本教程,你可以快速上手这个高性能的 Python web 框架。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部