Проверка формы и перенаправление в колбе без расширений (WTForms и т. Д.) - PullRequest
0 голосов
/ 08 ноября 2018

Я искал и читал десятки постов, но пока не нашел ответа.

Я ищу способ проверить форму, остаться на той же странице и сообщить об ошибке в случае сбоя или отобразить следующую 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. Я полагаю, что какое-то решение, которое я принял, не работает должным образом с точки зрения предоставления возможности самой странице отображаться ..

1 Ответ

0 голосов
/ 08 ноября 2018

Во-первых, вы захотите обернуть ваши текущие if заявления в общую

if flask.request.method == POST: 

Это активирует код, когда он будет опубликован.

Далее вы захотите использовать вспышки для отображения сообщений, если информация неверна. Дайте ему быстрый Google, и вы сможете найти быстрый шаблон для использования.

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