在 FastAPI 中,路径参数允许你在 URL 中指定变量,并在路由函数中使用这些参数。路径参数是从 URL 中提取的,用于传递特定信息给你的应用。以下是关于 FastAPI 路径参数的简单教程:

1. 创建 FastAPI 应用

首先,确保你已经创建了一个 FastAPI 应用。可以使用以下代码创建一个简单的应用:
from fastapi import FastAPI

app = FastAPI()

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

2. 添加路径参数

在 FastAPI 中,路径参数是通过将参数名称包含在 URL 中实现的。在路由路径中使用 {} 括号将参数名括起来。例如,下面的代码演示了如何添加一个路径参数:
from fastapi import Path

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

在这个例子中,item_id 是路径参数,它会被 FastAPI 从 URL 中提取并传递给 read_item 函数。在路径中使用 {item_id} 作为占位符,FastAPI 将在运行时将实际的路径值传递给 item_id 参数。

3. 设置路径参数的类型

你可以为路径参数指定类型,以确保它符合你的预期。在上面的例子中,我们将 item_id 的类型设置为 int,这意味着 FastAPI 将尝试将路径参数解析为整数。如果解析失败(例如,路径中包含非数字字符),FastAPI 将返回一个错误响应。
from fastapi import Path

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

4. 可选的路径参数

有时,你可能希望使路径参数变为可选。你可以通过在类型声明中使用 Optional 类型或者将默认值设置为 None 来实现这一点。
from fastapi import Path

@app.get("/items/{item_id}")
def read_item(item_id: int = Path(..., title="The ID of the item", ge=1)):
    return {"item_id": item_id}

在这个例子中,item_id 是一个可选的路径参数,但是在类型声明中,我们设置了一个默认值 ...,并通过 ge 参数指定了最小值为 1。这表示如果未提供路径参数,则默认值为 ...,但是如果提供了参数,它必须是大于等于 1 的整数。

5. 校验和限制路径参数

FastAPI 提供了许多内置的校验器和限制器,以确保路径参数符合预期的要求。在上面的例子中,我们使用了 ge 参数来限制 item_id 的最小值。

你还可以使用其他参数,如 lt(小于)、le(小于等于)、gt(大于)、ge(大于等于)等,来进一步限制参数的取值范围。

总结

通过使用路径参数,你可以轻松地从 URL 中提取信息,并在 FastAPI 应用中使用这些信息。路径参数的类型、默认值以及校验和限制功能,使得你可以更加灵活地处理不同的请求情况。在 FastAPI 文档中可以找到更多关于路径参数的详细信息和用法示例。


转载请注明出处:http://www.zyzy.cn/article/detail/7361/FastAPI