Остановка отправки формы при обновлении страницы - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть форма с Flask / Python / Html

Когда форма отправлена, она перенаправляется на другую страницу, где она дает подтверждение, например «Успешная отправка формы!»

Однако, если я обновлю страницу, она снова отправит содержимое, поэтому я потенциально могу получить дубликаты данных.

Есть ли способ предотвратить это?

HTML

<form action="{{ url_for('submitForm') }}" method="post">
<input name='user_input'>
<button type='submit'>Submit</button>
</form>

Python / Колба

app.route('/submitForm', methods=['POST'])
def submitForm():
    data = request.form['user_input']
    some_list.append(data)
    return 'Form submitted'

1 Ответ

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

Проблема заключается в том, что браузер сохраняет состояние последнего запроса, поэтому, если вы обновите страницу в этот момент, браузер повторно отправит форму.

После обработки успешного запроса формы перенаправьте настраница, чтобы получить новое состояние.

что-то вроде кода ниже

return redirect(url_for('submitForm'))

следовательно

app.route('/submitForm', methods=['POST'])
def submitForm():
    data = request.form['user_input']
    some_list.append(data)

    print('data submitted successfuly')
    return redirect(url_for('submitForm'))
    return 'Form submitted'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...