Подтвердить что ты не робот

Исключение для не существующего параметра в FLASK

У меня есть форма, которая отправляет параметры. В моей форме у меня есть флажок. Если мой флажок не установлен, я не получу никаких параметров.

Если в моем модуле есть:

var = request.form['mycheckbox']

и если мой флажок не установлен (параметр не передан)

Затем в режиме отладки я получаю сообщение об ошибке:

Плохой запрос Браузер (или прокси) отправил запрос на этот сервер не мог понять.

Ничего не говорит мне о том, что такое ошибка.

Я запретил исключение, используя:

    try:
        var=request.form['checkbox']
    except:
        var=None

Но не могу ли я изменить поведение того, как Flask обрабатывает этот случай?

4b9b3361

Ответ 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']