Flask 是否基于两条或多条管线渲染同一模板?
假设我有两条不同的路线,共享10个项目中的9个,有没有办法使用相同的模板,但让jinja根据它来自的路线呈现不同的项目 例如:Flask 是否基于两条或多条管线渲染同一模板?,flask,jinja2,Flask,Jinja2,假设我有两条不同的路线,共享10个项目中的9个,有没有办法使用相同的模板,但让jinja根据它来自的路线呈现不同的项目 例如: @app.route('/foo') def foo(): d = {'var1': 'item1', 'var2': 'item2',} return render_template('myTemp.html', d=d) @app.route('/bar') def bar(): d = {'var1': 'item1', 'var2':
@app.route('/foo')
def foo():
d = {'var1': 'item1', 'var2': 'item2',}
return render_template('myTemp.html', d=d)
@app.route('/bar')
def bar():
d = {'var1': 'item1', 'var2': 'item2',}
extra_variable = 'some_extra_var'
return render_template('myTemp.html', d=d, extra_variable=extra_variable )
是否有方法处理模板上的
额外变量
?是的,只需添加一个if
块来检查变量,并包括任何需要的额外标记(如果存在):
{% if extra_variable %}
<p>The extra variable is... "{{ extra_variable }}".</p>
{% endif %}
{%if额外变量%}
额外的变量是。。。“{{extra_variable}}”
{%endif%}
这样更新模板后,您就可以将问题中的额外变量从路由传递到模板
仅当从路由传递额外的_变量时,if
块内的标记才会显示。如果需要做的不仅仅是显示额外变量,还可以在if
s块中嵌套更多的模板逻辑(if
s、for
s等)