【问题标题】:How to use the input through get request as a variable in fastapi如何通过获取请求将输入用作fastapi中的变量
【发布时间】:2022-11-24 09:45:07
【问题描述】:

我正在使用快速 API 进行预测。我通过 get 请求获取 if 和输入并返回响应。但是我想根据用户提供的输入 ID 动态更改端点,但我无法做到。我得到name task_id is not defined

from pydantic import BaseModel
class SoluteSolvent(BaseModel):
    solvent: str
    solute: str
    task_id: int

api_names = ['/predict','/predict_json']

@app.get(api_names[task_id])
def predict(task_id: int,solute: str, solvent: str):
    if task_id == 0:
        results = predictions(solute, solvent)
        response["interaction_map"] = (results[1].detach().numpy()).tolist()
        response["predictions"] = results[0].item()
        return {'result': response}
    elif task_id == 1:
        return "this is second one"

【问题讨论】:

  • 为什么要动态更改端点?在第二种情况下,您可以使用 RedirectResponse 重定向到 /predict_json
  • 你不能像那样使用 api_names - 这些是在 FastAPI 启动时配置的,而不是在请求进入时配置的。如果你想为相同的视图函数,您可以堆叠 .get() 装饰器(即有多个相同的底层端点)。但是,我建议将公共代码移动到一个函数中,并且有两个视图端点只包含它们之间实际不同的代码。

标签: python python-3.x fastapi


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 2023-02-10
    • 2014-10-03
    • 1970-01-01
    • 2022-06-26
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2020-08-24
    相关资源
    最近更新 更多