【问题标题】:Is it possible to get query params using fastapi if param's name is a python keyword?如果参数的名称是 python 关键字,是否可以使用 fastapi 获取查询参数?
【发布时间】:2021-01-19 14:26:56
【问题描述】:

我遇到了以下问题。

我们正在开发自己的自定义测试框架,出于测试目的,我必须为我们的一项服务创建一个存根。 这个想法是使用 FastApi 来实现它,但是我遇到了一个问题。该服务的查询字符串如下所示:

xrRequestTmpl = `%s/v2/click/rates?from=%s&to=%s&ticks=true&ts=%v`

如你所见,查询参数之一是'from',它是一个python关键字,所以我不能使用

from fastapi import FastApi

xr = FastAPI()
@xr.get('/v2/click/{path}')
def rates(path, from, to, ticks, ts):
    pass

python 显然将 'from' 解释为与导入相关的关键字,并且不允许这样的语法。 不幸的是,我绝对不能更改查询字符串的语法,因为它已经集成在 prod env 中,所以我必须以某种方式接收这些参数。

我将非常感谢一个有效的代码示例或至少一个提示。由于所述测试框架的特殊性,使用另一个库(不是 fastapi)是一个不太可取的解决方案。

【问题讨论】:

    标签: python keyword fastapi


    【解决方案1】:

    是的,有可能,您可以使用alias

    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.get('/my_path')
    def rates(_from: str = Query(..., alias="from")):
        pass
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多