在这里,我将分享我想要实现的示例代码。
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 ) 被刷新