Python Flask:如何将所有变量传递到模板中

Python 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

我想用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_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循环来显示所有值。但在我看来,使用嵌套循环不是一个很好的解决方案。