【问题标题】:Using request args in Flask for a variable URL and second value returns as none在 Flask 中对变量 URL 使用请求参数,第二个值返回为无
【发布时间】:2019-01-17 01:41:57
【问题描述】:

网址:http://127.0.0.1:5000/login?apple=exec&basket=app

Apple 值返回为 exec,但篮子值返回为 None 而不是 app。获取第二个值的问题

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/login', methods=['GET'])
def login():

        a = str(request.args.get('apple', type = str))
        b = str(request.args.get('basket', type = str))
        return (b)

if __name__ == "__main__":
    app.run()

【问题讨论】:

  • 你运行的是什么版本的python,什么版本的Flask?
  • Flask 1.0.2 Python 3.4.8
  • 如果您将b 请求更改为:b = request.args.get('basket', 'value'),会发生什么?是否输出value
  • 它以 value 作为默认值,它返回 execvalue 而不是 execNone
  • 卸载不起作用,是的,肯定会查看链接。非常感谢!

标签: python flask


【解决方案1】:

获取参数的代码没有问题,实际上问题是您无法将 2 个项目返回给浏览器。它只是无法拾取它们(即使 python 能够返回超过 1 个值)。

以下代码证明这些值被正确提取。

from flask import Flask, request, render_template

app = Flask(__name__)


@app.route('/login', methods=['GET'])
def login():
    a = request.args.get('apple')
    b = request.args.get('basket')
    return a+b


if __name__ == "__main__":
    app.run()

给予:

execapp

【讨论】:

  • 您的回答没有解释为什么他会为b 值获得None。这似乎是问题所在。即使他的代码按原样工作,他也必须有一些东西(也许是版本)导致他得到None
  • true 我获得了 execNone 而非 execapp 的价值。你怎么用相同的代码得到 execapp。您使用的是什么版本,我如何确保我使用的是正确的版本。
  • Btw request.args.get() 如果无法根据提供的键获取值,则返回 None 。尝试更新您的请求版本
  • 顺便说一句,我已经删除了不必要的类型转换,请立即尝试上面的代码!
猜你喜欢
  • 2017-03-15
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多