【问题标题】:Python Flask not accepting spaces in the variable arguments [duplicate]Python Flask不接受变量参数中的空格[重复]
【发布时间】:2017-10-25 19:19:01
【问题描述】:

我必须调用 Python Flask API,并将变量参数传递给 API。 以下是我的 API 路线:

@app.route('/v2/products/category', methods = ['GET'])
def get_price_dif():
    page = request.args.get('page') 
    category = request.args.get('category')

以下是我如何使用参数调用 API:

localhost:5000/v2/products/category?page=1&category=Mobiles & Accessories

这里的问题是 API 不接受单词“Mobiles”、“&”和“Accessories”之间的空格" 在字符串 "Mobiles & Accessories"

如果我打印 API 收到的“类别”值,它只会显示“Mobiles

如何调用 API 以及类别值中的空格?

【问题讨论】:

    标签: python-2.7 rest api flask


    【解决方案1】:

    我认为定义关键字参数时不需要空格 将您的代码更改为下面的代码。删除方法参数和 ['GET'] 数组之间的白色

    @app.route('/v2/products/category', methods=['GET'])
    def get_price_dif():
        page = request.args.get('page') 
        category = request.args.get('category')
    

    尝试用 %20 替换空格,看看是否可行

    localhost:5000/v2/products/category?page=1&category=Mobiles%20&%20Accessories
    

    【讨论】:

    • 我没有明白您所说的“删除方法参数和 ['GET'] 数组之间的白色”是什么意思?我尝试用 %20 替换空格...没有用:(还有其他建议吗?
    【解决方案2】:

    我部分解决了问题。

    category = str(request.args.get('category'))
    

    这现在允许我传递包含空格的参数。

    localhost:5000/v2/products/category?page=1&category=Large Appliances
    

    上述调用工作正常:

    category : Large Appliances
    

    但是当我的论点包含一个 & 符号时,问题就出现了。 Flask 将其作为变量值参数:

    localhost:5000/v2/products/category?page=1&category=Home & Kitchen
    

    这里的类别被截断为:

    category : Home
    

    如何绕过 & 符号,使其在 URL 中也被接受?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 2016-05-29
      相关资源
      最近更新 更多