rob*_*uan 5 python variables templates jinja2 flask
假设我有一个带有标题的基本模板,并且该标题的内容需要传递到模板中.
<header>
  You are logged in as {{ name }}
</header>
此基本模板扩展了许多页面.如何传递该变量而不将其传递给每个孩子?例如,我不想这样做:
render_template("child1.html", name=user.name)
render_template("child2.html", name=user.name)
render_template("child3.html", name=user.name)
etc...
因为谁知道我可能有多少个子页面.它感觉不够干燥.
我从来没有实际渲染基本模板,只有它的子项,但我不知道如何传递数据.
有没有办法做到这一点?我不应该使用继承吗?
cod*_*eek 12
我建议你在烧瓶中使用全局变量'g'.默认情况下,这在jinja模板中可用.因此,您无需担心将其传递到基本模板或子项中的任何位置.请确保在登录时首先进行设置
g.username = user.name
然后在模板中,只需这样做:
You are logged in as {{ g.username }}