You need to enable JavaScript to run this app. Flask中URL同名多值查询参数第二个值丢失问题及解决方案
优惠活动
大模型
产品
解决方案
定价
更多

Flask中URL同名多值查询参数第二个值丢失问题及解决方案

解决方案

核心修改点是使用Flask request.args 内置的getlist()方法获取所有同名name参数的取值,而非直接取单值。

修改后的完整代码

@app.route('/obj', methods=['GET'])
def api_name():
    # 检查URL中是否提供了name参数
    # 若提供则获取所有同名name参数的列表
    # 未提供则在浏览器中返回错误
    if 'name' in request.args:
        # 改动点:用getlist获取所有同名参数值
        name_list = request.args.getlist('name')
    else:
        return "Error: No name field provided. Please specify an name."

    # 为查询结果创建空列表
    results = []

    # 遍历数据匹配符合请求name的结果
    for n in obj:
        if n['name'] in name_list:
            results.append(n)

    # 使用Flask的jsonify函数将Python字典列表转换为JSON格式
    return jsonify(results)

改动说明

  • 把原来直接取request.args['name']的逻辑替换为request.args.getlist('name'),该方法会返回所有同名name参数组成的列表,比如请求/obj?name=a&name=b时,返回值为['a', 'b']
  • 把匹配逻辑从判断n['name'] == name改为判断n['name'] in name_list,即可同时匹配多个传入的name参数值

测试请求/obj?name=a&name=b时,会返回预期结果:

[{"name":"a","class":"x"},{"name":"b","class":"y"}]

内容的提问来源于stack exchange,提问作者Sanjeeth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 15:45:00