【问题标题】:FastAPI restrict valid path names at run timeFastAPI 在运行时限制有效路径名
【发布时间】:2020-07-25 10:04:03
【问题描述】:

我知道 FastAPI 可以restrict valid path names using a class 继承自 Enum,但这似乎意味着我必须在设计时知道有效的路径名。

但是,如果我在运行时只知道有效路径的受限列表,使用函数怎么办?并且该函数的结果可能会定期更改。我只想将查询限制为这些路径名,但由于上面使用的是预先形成的类定义,而不是类的实例,我看不出如何在运行时更改有效路径 Enum。

有没有办法在运行时更改端点的路径名限制?

【问题讨论】:

    标签: fastapi


    【解决方案1】:

    一切皆有可能,例如,您可以将值复制到新的 Enum 中。这不是很漂亮,但如果您确保全局重新分配 ModelName,文档生成器应该会接收更改

    def new_enum(current_enum, names: List[str]):
        values = names
    
        for item in current_enum:
            names.append(item.name)
            values.append(item.value)
    
        return enum.Enum(current_enum.__name__, dict(zip(names, values)))
    
    
    class ModelName(str, Enum):
        alexnet = "alexnet"
        resnet = "resnet"
        lenet = "lenet"
    
    
    ModelName = new_enum(ModelName, ['foo', 'bar'])
    

    【讨论】:

      猜你喜欢
      • 2020-07-06
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      相关资源
      最近更新 更多