Flask-WTF не обрабатывает мой ответ формы
-
27-10-2019 - |
Вопрос
Я использую Flask (vsn 0.8) и Flask-WTF (vsn 0.5.2) (например, для синтаксического анализа форм), чтобы сделать довольно простой веб-сайт.Однако я не могу заставить Flask-WTF правильно анализировать мои результаты GET.
Мой соответствующий код выглядит так:
родовое словоЕсли я отправлю свою форму с одним полем под названием 'aws_id' с помощью GET, я получу следующий вывод на консоли.
родовое словоМне кажется, что отправка работает правильно, но Flask-WTF не выполняет свою задачу.По сути, старый способ работы с выводом формы работает, метод request.args.get, но новые form.is_submitted и form.validate_on_submit не приносят своей волшебной пользы.
Есть идеи?(Черт возьми!)
Решение
Я переместил свое приложение в корень своего сайта, удалил то, что там было (= избыточное), и добавил код request.form
в класс MyForm.Кажется, это исправляет.Также необходимо было установить для csrf_enabled
значение false.
Другие советы
Метод Form
класса is_submitted
во Flask-WTF выглядит так:
И в его генеральном коде кода есть этот код, который обычно обеспечивает автоматическую загрузку данных формы из запроса Flask:
родовое словоИтак, ясно ... если вы отправите форму через GET, вы не получите никакого хорошего автоматического поведения.Это понятно, потому что если это запрос GET, неясно, была ли форма отправлена или вы просто загружали страницу.Это помимо проблем с CSRF.
__init__
тоже не работает, так как он также полагается на validate_on_submit
Сам Flask также не анализирует поля GET в генерируемый код кода.
В конечном итоге вам нужно сделать что-то вроде:
родовое слово (все предполагают, что ваш класс is_submitted
наследуется от request.form
)