Я искал и читал десятки постов, но пока не нашел ответа.
Я ищу способ проверить форму, остаться на той же странице и сообщить об ошибке в случае сбоя или отобразить следующую HTML-страницу в случае успеха.
Моя текущая попытка: отправка формы в колбу, проверка и перенаправление. Скрытая рамка такова, что страница не обновится, если проверка не удалась. По какой-то причине render_template не работает и ошибка не будет отображаться.
Python и HTML (упрощенно):
@app.route("/", methods=['POST'])
def validate_form():
print
if (format(request.form['q1']) != '1' or format(request.form['q2']) != '2 ):
return render_template("index.html",err = "One of your answers are incorrect. Please check again.")
else:
return render_template("next_page.html")
<iframe name="hiddenFrame" class="hide"></iframe>
<form name ="quiz" method="post" action="/" target="hiddenFrame">
<p>Who likes carrots?<br>
<input type="radio" name="q1" value="1" checked>bunny<br>
<input type="radio" name="q1" value="2">rabbit<br>
<input type="radio" name="q1" value="3">beyonce<br>
</p>
<p>what is 1+1?<br>
<input type="radio" name="q2" value="1" checked>10<br>
<input type="radio" name="q2" value="2">1.<br>
<input type="radio" name="q2" value="3">2<br>
</p>
<span class="error">* {{err}}</span><br>
<input class="button" name="submit" type="submit" value="Submit" >
</form>
Редактировать: Моя HTML-страница разделена на 3-4 под-содержания, где вы нажимаете кнопки «Далее» и «Предыдущие», чтобы перемещаться по ним. Когда пользователь отправляет форму, мне нужно, чтобы она оставалась на том же субконтенте, поэтому я использовал скрытый фрейм, чтобы перенаправить его обратно через html. Я полагаю, что какое-то решение, которое я принял, не работает должным образом с точки зрения предоставления возможности самой странице отображаться ..