【问题标题】:concat multiple block in jinja2?在jinja2中连接多个块?
【发布时间】:2011-03-08 20:04:28
【问题描述】:

我在 python 中使用 jinja2 作为我的模板引擎。

我想加入多个块的内容,并想在模板的末尾呈现它,就在标签之前。 { 它们是多个模板中整个代码中的各种 JavaScript sn-ps,我想将其移至文件末尾,我该怎么做? }

编辑:

我想移动在子 jinja 模板中创建的所有内联 javascript。我想将它们移到页面底部。所以我在页面末尾的父模板中创建了一个块,并在子模板中使用它来编写 javascript。但是,可能有多个孩子,所以有多个 javascript 块,并且由于 jinja2 不支持多个块,我还有什么其他解决方案? -------- 我认为另一种选择是以不需要内联的方式创建 javascript 本身。

【问题讨论】:

  • 能否更详细地解释您要做什么?

标签: python templates jinja2


【解决方案1】:

我假设多个孩子是指从模板继承的模板继承自模板......从基本模板继承。如果是这种情况,除了添加更多 JavaScript 之外,您还需要在每个模板中定义相同的 javascript 块并在所有子模板中调用 super()。调用super() 打印父级的javascript 块的输出,依此类推继承链。在此过程中,每个块都可以添加自己的代码。

所以你可以在每个模板中都有这样的东西:

{% block javascript %}
    {{ super() }}

    function foo(x, y) {
        return x + y;
    }
{% endblock %}

【讨论】:

    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    相关资源
    最近更新 更多