Flask-wtforms在表单提交和传递变量上重定向

时间:2020-02-18 05:12:38

标签: python flask flask-wtforms

我正在努力弄清为什么我无法将变量传递给重定向的URL。我尝试了以下问题中的建议,但由于某些原因,它们无法正常工作。

redirect while passing arguments

How can I pass arguments into redirect(url_for()) of 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及其对应的模板。我只是无法传递变量(q1_answer)。我的模板始终返回值None。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为您使用它

@ app.route('/ quiz /',methods = ['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 /',Methods = ['GET','POST'])

def结果(q1_answer):

return render_template('result.html', q1_correct_answer=q1_answer)
相关问题