Flask isn’t getting the checkbox value

When submitting an HTML form, unchecked checkboxes do not send any data. On Flask’s side, there will not be a key in form, since no value was received. If you want to check if a single checkbox (with a unique name) is checked, just test if it’s name is in form. If you want to check which of multiple checkboxes (with the same name, but different values) are checked, use getlist instead.

One boolean:

<input type="checkbox" name="check">
checked = 'check' in request.form

Multiple options:

<input type="checkbox" name="check" value="1">
<input type="checkbox" name="check" value="2">
<input type="checkbox" name="check" value="3">
selected = request.form.getlist('check')
any_selected = bool(selected)

Leave a Comment