如何使用Flask获取未选中的复选框?(或者其他的东西!)

Way*_*ner 1 html forms flask

显然有几个人有同样的 问题.

不幸的是,他们都使用PHP,这显然做了一些奇怪的事情.

我有一些服务器代码,如下所示:

@app.route("/place", methods=['GET', 'POST'])
def place():
    names = request.form.getlist('name')
    checks = request.form.getlist('checkboxes')
    if request.form.get('Add Element'):
        #return template with another form element and all the data
    #return default template with N copies of the input
Run Code Online (Sandbox Code Playgroud)

现在这就是问题 - 如果我使用单选按钮作为我的是/否(选中或不选中),我就无法使用getlist,因为它们都有相同的名称.或者,我不能使用复选框,因为出于某种原因"他们"决定不应该使用"false"值发送复选框.

此解决方案不起作用:

<input id='testName' type='checkbox' value='Yes' name='testName'>
<input id='testNameHidden'  type='hidden' value='No' name='testName'>
Run Code Online (Sandbox Code Playgroud)

因为,那么我想要的元素数量在1-2倍之间.

我不想使用Javascript,虽然我很容易 - 这将是一个使用率极低的网站(可能每月200-300页面浏览量,顶部,通常在月末聚集在一起).

我有一个可能的解决方案是使用"YesNo" - 但这似乎有点笨拙的一面.不幸的是,我不能轻易想到任何其他方式(不涉及javascript)来做我需要的.

我坚持select选择吗?

Sea*_*ira 5

未经检查的复选框不会被序列化为响应 - 如果您正在处理一个案例,其中您有多个表单部分,每个部分都带有一个复选框(例如):

Repeating section #N
    Text field: __________
    Select field: -----------^
    Checkbox: []

Repeating section #N+1
    etc ...
Run Code Online (Sandbox Code Playgroud)

然后你可以做两件事之一: