【问题标题】:Flask: request.form.getlist won't return any entriesFlask:request.form.getlist 不会返回任何条目
【发布时间】:2014-08-03 22:36:50
【问题描述】:

由于某种原因,我无法得到我 4 周前工作的这个东西:/ 我有一个网站,我通过 jQuery 添加了一个检查按钮,我需要 Flask 来读出它是否被选中。 我做了一个最小的例子,但它仍然不起作用。

代码如下:

post.htm

<html>
<body>
<form name="formular" action='http://127.0.0.1:5000/formtest' method="post">
<input type="checkbox" value="test1">
<INPUT type ="submit" id="send" value="Do it"/>
</form>
</body>
</html>

webserver.py

@app.route('/formtest', methods=['POST'])
def formtest():
    checklist = request.form.getlist('test1')
    if checklist:
        check = True
    else:
        check = False
    if check:
        return("checked")
    else:
        return("not checked")

它总是返回“未检查”,但我不明白为什么。清单始终是一个空列表。哪里出错了?

提前致谢!

【问题讨论】:

    标签: python forms post flask


    【解决方案1】:

    您的复选框没有name 属性;它永远不会作为 POST 的一部分发送。给它一个name 属性和一个值:

    <input type="checkbox" name="test1" value="true">
    

    不要在这里使用MultiDict.getlist();你可以使用 MultiDict.get() 来代替默认和类型转换:

    @app.route('/formtest', methods=['POST'])
    def formtest():
        check = request.form.get('test1', default=False, type=bool)
        return 'checked' if check else 'not checked'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多