Flask 解析 GET 请求时仅返回单个参数

Nic*_*ach 4 python flask

我正在尝试使用 Flask 在 REST API 上创建过滤器,但当查询字符串中重复相同的键时,Flask 似乎只返回单个参数。

例如:

from flask import Flask
from flask import jsonify
from flask import request
app = Flask(__name__)

@app.route('/')
def hello_world():
    return jsonify(request.args)
Run Code Online (Sandbox Code Playgroud)

对于请求<localhost>/?test=a&test=b,结果是:

{
  "test": "a"
}
Run Code Online (Sandbox Code Playgroud)

由于我想重用filter参数来表示 AND 逻辑进行过滤,如果 Flask 支持这一点会很方便。我意识到,Flask 在幕后将其解析request.args为 MultiDict 对象,这可能就是它无法返回多个同名键的原因。

我假设我可以在 Flask 中以某种方式访问​​原始查询字符串,但我还没有找到。如果我遇到解决方案,我会更新这篇文章,但如果其他人有想法,请分享。

Ren*_*han 5

用于request.args.getlist('test')获取给定键的所有值。