Как включить значение <input type = 'button'> в запрос POST в приложении Flask? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь создать форму входа в HTML, которая должна отправлять значения четырех входов с type = 'button' в серверную часть приложения FLASK в запросе на публикацию после того, как кнопка type = 'submit' нажал (соответствующий код включен ниже). Однако все, что отображается на сервере, это пустой ImmutableMultiDict (ImmutableMultiDict ([])). Мне интересно, почему мой код не работает?

Когда я изменяю тип ввода на текстовый, данные внезапно отображаются на стороне сервера. Однако для моего приложения очень важно, чтобы данные можно было выбрать кнопкой.

Это код для одного из входов кнопки. Я обернул форму для ясности:

<form action="{{ url_for('handle_login') }}" method="post" id="login-form">

    <input type="button" class="btn btn-secondary dropdown-toggle" 
    name="zwart_voor" value="Naam" data-toggle="dropdown" aria- 
    haspopup="true" aria-expanded="false"/>

</form>

Это код кнопки, которая должна инициировать запрос POST:

<button class="btn btn-primary login-button" type="submit" form="login-form" value="Submit">Start spel</button>

И, наконец, это соответствующий код Python приложения FLASK.

@app.route('/handle_login', methods=['POST'])
def handle_login():
   print(request.form)

   return render_template('index.html')

Опять же, печать просто возвращает (ImmutableMultiDict ([]).

1 Ответ

0 голосов
/ 04 апреля 2019

Пара «имя = значение» кнопки отправляется на сервер, только если она используется для отправки формы.Это может произойти, только если это type="submit" (по умолчанию).

Настройка type="button" указывает, что кнопка не имеет встроенной функциональности (то есть она будет делать только то, что говорит ей JavaScript), поэтому она не может отправить форму.

Измените атрибут type, если вы хотите, чтобы кнопка отправила форму.

Используйте <input type="hidden">, если хотитеотправлять данные при отправке формы, но не связывать эти данные с нажатием определенной кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...