Вопрос

Я использую 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)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top