【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"}

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

相关推荐
Amd7941 天前
FastAPI依赖注入:从基础概念到应用
fastapi·错误处理·代码示例·认证系统·依赖注入测试·依赖解析·路由处理
清风序来2 天前
一,<FastApi>什么是FastApi?及框架介绍
fastapi
Amd7943 天前
FastAPI中实现动态条件必填字段的实践
fastapi·数据验证·pydantic·422错误处理·模型验证器·用户注册·动态必填字段
yukai080083 天前
【最后203篇系列】026 FastAPI+Celery(续)
fastapi
Amd7944 天前
FastAPI中Pydantic异步分布式唯一性校验
redis·fastapi·分布式锁·多级缓存·pydantic·唯一性校验·异步校验
techdashen4 天前
性能比拼: Go标准库 vs Python FastAPI
python·golang·fastapi
Amd7945 天前
掌握FastAPI与Pydantic的跨字段验证技巧
fastapi·web开发·数据校验·pydantic·验证器·api集成·跨字段验证
带娃的IT创业者5 天前
《Python Web部署应知应会》No2:如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务
python·架构·flask·fastapi
Amd7946 天前
FastAPI中的Pydantic密码验证机制与实现
fastapi·数据验证·错误处理·pydantic·密码验证·安全机制·api集成
勘察加熊人6 天前
fastapi+angular在线音乐播放
前端·fastapi·angular.js