Flask -wtforms перенаправить на отправку формы и передать переменные - PullRequest
0 голосов
/ 18 февраля 2020

Я изо всех сил пытаюсь выяснить, почему я не могу передать переменные в мой перенаправленный URL. Я попробовал предложения в следующих вопросах, но по какой-то причине они не работают.

перенаправление при передаче аргументов

Как передать аргументы в redirect (url_for ()) Flask?

Единственное, о чем я могу думать, это то, что я использую flask -wtforms для проверки формы перед перенаправлением. Я не видел много ответов и предложений по этому сценарию. Вот и я.

    @app.route('/quiz/', methods=['GET', 'POST'])
    def quiz():
        form = Quiz()
        if form.validate_on_submit():
            q1_answer = 'North'
            return redirect(url_for('result', q1_answer=q1_answer))
        return render_template('quiz.html', form=form)

    @app.route('/result/', methods=['GET', 'POST'])
    def result():
        q1_correct_answer = request.args.get('q1_answer')
        return render_template('result.html', q1_correct_answer=q1_correct_answer)

Перенаправление работает так, как должно. URL «result» и соответствующий шаблон отображаются. Я просто не могу передать переменную (q1_answer). Мой шаблон всегда возвращает значение None. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 19 февраля 2020

Я думаю, что вы используете его

@app.route ('/ quiz /', method = ['GET', 'POST'])

def quiz ():

form = Quiz()
if request.method == "POST" and form.validate_on_submit():
    q1_answer = 'North'
    return redirect(url_for('result', q1_answer=q1_answer))
return render_template('quiz.html', form=form)

@app.route ('/ result /', method = ['GET', 'POST'])

def result (q1_answer):

return render_template('result.html', q1_correct_answer=q1_answer)
...