我想获取Flask中复选框的值。我读过一篇类似的文章,并尝试使用和的输出,request.form.getlist('match')因为这是我使用的列表[0],但看来我做错了。这是获取输出的正确方法还是有更好的方法?
request.form.getlist('match')
[0]
<input type="checkbox" name="match" value="matchwithpairs" checked> Auto Match
if request.form.getlist('match')[0] == 'matchwithpairs': # do something
你并不需要使用getlist,只是get如果只有一个给定名称的输入,尽管它不应该的事。你显示的内容确实有效。这是一个简单的可运行示例:
getlist
get
from flask import Flask, request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': print(request.form.getlist('hello')) return '''<form method="post"> <input type="checkbox" name="hello" value="world" checked> <input type="checkbox" name="hello" value="davidism" checked> <input type="submit"> </form>''' app.run()
提交带有两个复选框的表单,然后['world', 'davidism']在终端中打印。请注意,html表单的方法是,post因此数据将位于中request.form。
['world', 'davidism']
request.form
在某些情况下,了解字段的实际值或值列表很有用,看起来你只关心是否已选中该框即可。在这种情况下,更常见的是为复选框指定一个唯一的名称,然后仅检查它是否具有任何值。
<input type="checkbox" name="match-with-pairs"/> <input type="checkbox" name="match-with-bears"/>
if request.form.get('match-with-pairs'): # match with pairs if request.form.get('match-with-bears'): # match with bears (terrifying)