我在所有 Jinja 文件中都有共同的东西。我想将所有常见内容移至 Flask 中的一个 Jinja 文件中。
我的应用程序是用 Flask
编写的,我将上下文传递给 Jinja 模板,例如
def f1(name): render_template('j1.jinja', name=name)
def f2(name): render_template('j2.jinja', name=name)
def f3(name): render_template('j3.jinja', name=name)
我的j1.jinja
文件是:
{%block content %}
Name: {{ name }}
Hello
{% endblock %}
我的j2.jinja
文件是:
{%block content %}
Name: {{ name }}
Bye
{% endblock %}
我的j3.jinja
文件是:
{%block content %}
Name: {{ name }}
Howdy
{% endblock %}
我将常见内容移至单个 Jinja 文件 common.jinja
,即:
{% block content %}
Name : {{name}}
{% endblock %}
我将其包含在所有 Jinja 文件中,例如:
{% include 'common.jinja' with { "name": name } only %}
这不起作用。我收到异常:
Exception Occured. Explanation: expected token 'end of statement block', got 'with'
如何将上下文传递给包含的 Jinja 文件?
最佳答案
你的代码看起来有点奇怪。没有单独的 with
语句指定上下文,它是 with context
,它经常与 import
语句一起使用(参见 Import context behaviour )。
要将任何上下文传递给包含的模板,只需使用上下文变量渲染父模板即可,例如在render_template()
中:
render_template('j3.jinja', name=name)
关于flask - 将上下文传递给 Jinja 模板中包含的 Jinja 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35449415/