由于某种原因,我无法让我 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")
它总是返回“未检查”,但我不明白为什么。 list 始终是一个空列表。错误在哪里?
提前致谢!
最佳答案
您的复选框没有 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'
关于python - Flask:request.form.getlist不会返回任何条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24204118/