【问题标题】:Flask-wtforms Redirect on Form Submission and Pass VariablesFlask-wtforms 重定向表单提交和传递变量
【发布时间】:2025-11-24 03:10:02
【问题描述】:

我很难弄清楚为什么我无法将变量传递给我的重定向网址。我尝试了以下问题中的建议,但由于某种原因它们不起作用。

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)

重定向按应有的方式工作。 'result' url 及其对应的模板被渲染。我只是无法让变量 (q1_answer) 通过。我的模板总是返回 None 值。任何帮助将不胜感激。

【问题讨论】:

    标签: python flask flask-wtforms


    【解决方案1】:

    我认为你会使用它

    @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'])

    定义结果(q1_answer):

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

    【讨论】:

      最近更新 更多