我试图在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"])
一切正常。为什么会这样?
答案 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。