Flask BluePrint路由无法与多个参数一起使用

时间:2019-01-03 20:43:01

标签: python url flask

我试图在Flask中创建一个小的API,需要两个不同的参数。 股票代码和密钥(用于身份验证)。

这是我的路线的定义方式:

api_bp = Blueprint("api", __name__, url_prefix="/api")


@api_bp.route("/1.0/<string:ticker>?key=<string:key>", methods=["GET"])
def some_function(ticker:str, key:str):
    ...

但是我遇到404 not found错误。当我删除第二部分并将网址设为:

@api_bp.route("/1.0/<string:ticker>", methods=["GET"])

一切正常。为什么会这样?

1 个答案:

答案 0 :(得分:1)

请求路径参数已超过您的工作示例。 查询参数(所有在?之后)的工作方式如下。您无需将它们添加到应用程序或蓝图路由定义中,只需通过获取请求参数即可获取值:

$ perl -F'/\s+/' -lane '  $F[0]=~/(.*):/ ; if( $F[5]>$kv{$1} ) { $kv{$1}=$F[5]; $kv2{$1}=$_ } END { print "$kv2{$_}" for(keys %kv) } ' monk.log
16:07:02       0    3.03    0.00    6.06    9.00    0.00    0.00    0.00    0.00    0.00   90.91
16:06:02       0    3.03    0.00    6.06    5.00    0.00    0.00    0.00    0.00    0.00   90.91

如果'key'不存在,则值为None。

相关问题