Python Flask:如何将所有变量传递到模板中
我想用Flask解析模板html上定义的所有变量,如下所示: app.pyPython Flask:如何将所有变量传递到模板中,python,templates,flask,jinja2,Python,Templates,Flask,Jinja2,我想用Flask解析模板html上定义的所有变量,如下所示: app.py @app.route("/toto") def toto(): toto = [1,2,3] tata = [1,2,3] titi = [1,2,3] return render_template("toto.html", toto=toto, tata=tata, titi=titi) toto.html {% set var = ALL_VARIAB
@app.route("/toto")
def toto():
toto = [1,2,3]
tata = [1,2,3]
titi = [1,2,3]
return render_template("toto.html", toto=toto, tata=tata, titi=titi)
toto.html
{% set var = ALL_VARIABLE %}
{% for v in var %}
{{ v }}
{{ endfor }}
toto.html
文件用于多个模板,我想获取模板上的所有变量,因为我添加了使用这些变量的输入。这可以在模板中轻松完成,如下所示:
<ul>
{% for to in toto %}
<li>{{to}}</li>
{% endfor %}
</ul>
<ul>
{% for to in tata %}
<li>{{ta}}</li>
{% endfor %}
</ul>
{to的百分比总计%}
- {{to}}
{%endfor%}
{tata%中的to的%s}
- {{ta}}
{%endfor%}
或者,您也可以按如下方式连接列表:
{% set var = tata + toto + titi %}
<ul>
{% for i in var %}
<li>{{i}}</li>
{% endfor %}
</ul>
{%set var=tata+toto+titi%}
{var%中的i的%s}
- {{i}
{%endfor%}
将多个变量传递到模板中的干净方法是将变量包装到dict
中,并将单个dict对象传递到模板中,然后以mydict.toto
的身份访问
例如:
{% for v in mydict.toto %}
{{ v }}
{% endfor %}
只需在for循环中连接变量
<ul>
{% for t in tata + toto + titi %}
<li>{{ t }}</li>
{% endfor %}
</ul>
{塔塔+托托+提提%中t的百分比}
- {{t}
{%endfor%}
您可以将变量包装到字典中,并将单个dict对象传递到模板中,然后以mydict.toto
的身份访问。这不起作用!创建这样一个dict:mydict={“toto”:[1,2,3],“tata”:[4,5,6],“titi”:[7,8,9]}
将只显示包含dict键的列表,而不显示值。但是,您可以使用嵌套的for循环。@agittarius-我不得不反对mate,这很好,因为dict键是以mydict.toto
的形式显式访问的,因此迭代器打印列表的内容。请再看一眼,然后再试一次。这是真的,但是你只显示了toto的值,这并不能解决所请求的问题。使用这种dict方法,您可以使用nester循环来显示所有值。但在我看来,使用嵌套循环不是一个很好的解决方案。