如果参数名称是 python 关键字,是否可以使用 fastapi 获取查询参数?
Is it possible to get query params using fastapi if param's name is a python keyword?
我遇到了以下问题。
我们正在开发自己的自定义测试框架,出于测试目的,我必须为我们的一项服务创建存根。
我的想法是使用 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' 解释为与导入相关的关键字,并且不允许这样的语法。
不幸的是,我绝对不能更改查询字符串的语法,因为它已经集成在产品环境中,所以我必须以某种方式接收这些参数。
如果能提供有效的代码示例或至少提供提示,我将不胜感激。由于所述测试框架的具体情况,使用另一个库(不是 fastapi)是一个不太可取的解决方案。
可以,您可以使用 alias。
from fastapi import FastAPI
app = FastAPI()
@app.get('/my_path')
def rates(_from: str = Query(..., alias="from")):
pass
我遇到了以下问题。
我们正在开发自己的自定义测试框架,出于测试目的,我必须为我们的一项服务创建存根。 我的想法是使用 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' 解释为与导入相关的关键字,并且不允许这样的语法。 不幸的是,我绝对不能更改查询字符串的语法,因为它已经集成在产品环境中,所以我必须以某种方式接收这些参数。
如果能提供有效的代码示例或至少提供提示,我将不胜感激。由于所述测试框架的具体情况,使用另一个库(不是 fastapi)是一个不太可取的解决方案。
可以,您可以使用 alias。
from fastapi import FastAPI
app = FastAPI()
@app.get('/my_path')
def rates(_from: str = Query(..., alias="from")):
pass