-1

在这里,我将分享我想要实现的示例代码。

my_bluprint = Blueprint('index',
                   __name__,
                   template_folder=template_dir)

@my_bluprint.route('/print', methods=['GET', 'POST'])
def my_function_2():
    print('i was redirected')
    if request.method == 'POST':
        age = request.form.get('age')
        print('AGE: ', age)

    return render_template("form2.html")

@my_bluprint.route('/test', methods=['GET', 'POST'])
def my_function():
    if request.method == 'POST':
        print('my_function')
        # do something
        name = request.form.get('name')
        print('my_name', name)
        if name == 'root':
            print('name is ', name)
            return redirect(url_for("index.my_function_2"))
        # age = request.form.get('age')
        print('AGE: ',age) # I need input age from my_function_2 here
        age_trans = my_module.ageMul(age)
        print('TransAGE: ', age_trans)
        return render_template("result.html", result=age_trans)
    return render_template("form1.html")

我需要根据前一个模板的输入来渲染不同的模板。在运行时,我的程序将使用来自一个模板的输入来决定下一个重定向哪个模板。我尝试按照我在示例代码中使用的方式渲染模板,但我需要来自先前模板的输入以进行进一步处理,并结合所有其他已渲染模板的输入。 编辑
我能够重定向到我的代码中的其他路线。但我需要my_function_2()my_function()执行my_function_2(). 这意味着我需要回到主要路线,即/test使用来自my_function_2. 我需要帮助以了解如何做到这一点
另一个想法
有没有办法在同一个函数中使用条件来呈现不同的模板让我们说my_function()。如果来自一个 html 表单的输入使条件为 true 呈现模板 A 否则呈现模板 B ?同时保留来自第一个模板的输入my_function()?这样我就可以只有一条路线渲染多个模板?但我想保留以前渲染的所有模板中的数据

,这样做的好方法是什么?
EIDT 2
我试过这个

@my_bluprint.route('/test', methods=['GET', 'POST'])
def my_function():
    if request.method == 'POST':
        #name = request.form.get('name')
        session['name'] = request.form['name']
        print('my_name', session['name'])
        if session['name'] == 'root':
            print('name is ', session['name'])
            #return redirect(url_for("index.my_function_2"))
            return render_template("form2.html")
        age = request.form.get('age')
        print('AGE ',age)
        age_trans = my_module.ageMul(age)
        print('TransAGE: ', age_trans)
        print(session['name'])
        return render_template("result.html", result=age_trans)
    return render_template("form1.html")


第一次运行顺利,直到return render_template("form2.html")在此处提交的表单控件返回if request.method == 'POST':并从头开始执行它并在这里给我错误session['name'] = request.form['name']但我希望程序控件始终使用它在第一次运行时获得的值向前移动,render_template("form1.html")直到页面(url ) 被刷新

4

1 回答 1

-1

您可以在重定向的查询参数中传递它或将其存储在会话中。

于 2020-01-16T09:04:40.257 回答