Flask:request.form.getlist不会返回任何条目

2024-05-13 18:09:41 发布

您现在位置:Python中文网/ 问答频道 /正文

因为某些原因我不能得到我4周前工作过的东西:/ 我有一个网站,我通过jQuery添加了一个checkbutton,我需要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")

它总是返回“未检查”,但我不明白为什么。清单总是空的。错误在哪里?

提前谢谢!


Tags: formreturnifvaluehtmlchecktype原因
1条回答
网友
1楼 · 发布于 2024-05-13 18:09:41

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

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

不要在这里使用MultiDict.getlist();您可以将^{}与默认值和类型转换一起使用:

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

相关问题 更多 >