Исключение для не существующего параметра в FLASK
У меня есть форма, которая отправляет параметры.
В моей форме у меня есть флажок.
Если мой флажок не установлен, я не получу никаких параметров.
Если в моем модуле есть:
var = request.form['mycheckbox']
и если мой флажок не установлен (параметр не передан)
Затем в режиме отладки я получаю сообщение об ошибке:
Плохой запрос Браузер (или прокси) отправил запрос на этот сервер не мог понять.
Ничего не говорит мне о том, что такое ошибка.
Я запретил исключение, используя:
try:
var=request.form['checkbox']
except:
var=None
Но не могу ли я изменить поведение того, как Flask обрабатывает этот случай?
Ответы
Ответ 1
Причина этого скрыта в документации к фляге: http://flask.pocoo.org/docs/api/#flask.Flask.trap_http_exception
Я не уверен, почему это поведение не изменилось для режима отладки, но чтобы заставить Flask улавливать исключения BadRequestKeyError из werkzeug, вам нужно запустить что-то вроде этого в вашем объекте приложения:
app.config['TRAP_BAD_REQUEST_ERRORS'] = True
Ответ 2
var = request.form.get('checkbox')
Это возвращает None
, если параметр не определен.
Ответ 3
У меня была аналогичная проблема при проверке одного логического поля.
Я решил это, используя remember = form.rememberme.data
вместо request.form['remember_me']