您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Jinja2中将包含文件中的块用作父对象

在Jinja2中将包含文件中的块用作父对象

您可以在包含的文件中使用宏,但是可以使用上下文导入宏,而不要包含它。

T1.html

<root>
  <block t3_container>
    {% block t3 %}{% endblock %}
  </block t3_container>

  <block t2_container>
  {% block t2 %}{% endblock %}
  </block t2_container>
</root>

T2.html

{% extends 'T1.html' %}
{%- from 'T3.html' import inner, inner2 with context %}

{% block t3 %}
    {{ inner2() }}   
{% endblock %}

{% block t2 %}
    <block t2>
        {{ inner() }}
    </block t2>
{% endblock %}

T3.html

{% macro inner2() %}
    <block t3>
        CONTENT '{{ foo+1 }}'
    </block t3>
{% endmacro %}

{% macro inner() %}
  hello
{% endmacro %}

test.py

from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader("."))
t = env.get_template("T2.html")

print(t.render({"foo": 122}))
其他 2022/1/1 18:44:27 有515人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶