【FastAPI】路径参数(二)

预设值¶

如果你有一个接收路径参数的路径操作,但你希望预先设定可能的有效参数值,则可以使用标准的 Python Enum 类型。

导入 Enum 并创建一个继承自 str 和 Enum 的子类。通过从 str 继承,API 文档将能够知道这些值必须为 string 类型并且能够正确地展示出来。

然后创建具有固定值的类属性,这些固定值将是可用的有效值:

声明路径参数

用你定义的枚举类(ModelName)创建一个带有类型标注的路径参数:

dart 复制代码
from enum import Enum

from fastapi import FastAPI


class ModelName(str, Enum):
    alexnet = "alexnet"
    resnet = "resnet"
    lenet = "lenet"


app = FastAPI()


@app.get("/models/{model_name}")
async def get_model(model_name: ModelName):
    if model_name is ModelName.alexnet:
        return {"model_name": model_name, "message": "Deep Learning FTW!"}

    if model_name.value == "lenet":
        return {"model_name": model_name, "message": "LeCNN all the images"}

    return {"model_name": model_name, "message": "Have some residuals"}

打开文档后出现了可选的选项,在就是枚举类型的结果

相关推荐
Sun_Sherry1 天前
FastAPI: websocket的用法及举例
websocket·网络协议·fastapi
无敌开心2 天前
fastAPI教程:进阶操作
计算机视觉·fastapi
写bug如流水9 天前
【FastAPI】使用 SQLAlchemy 和 FastAPI 实现 PostgreSQL 中的 JSON 数据 CRUD 操作
postgresql·json·fastapi
竹笋常青9 天前
《The Graceful Dance of Fog》
fastapi
Joker-Tong9 天前
使用fastapi搭建ChatGPT对话后台
chatgpt·fastapi
黑金IT9 天前
FastAPI 的隐藏宝石:自动生成 TypeScript 客户端
javascript·typescript·fastapi
longersking12 天前
FastAPI挂载静态资源
python·fastapi
写bug如流水12 天前
【FasAPI】使用FastAPI来实现一个基于RBAC(基于角色的访问控制)的用户权限控制系统
jvm·oracle·fastapi
指弹代码摄影狗13 天前
【Fastapi】参数获取,json和query
python·fastapi
用户6735598856115 天前
数据驱动,实时监控显威力 —— 淘宝商品详情API助力商家精准营销
后端·api·fastapi