Django相当于mako的可调用块

时间:2012-06-11 13:27:38

标签: python django django-templates mako

Django是否相当于Mako的可调用块?

在Mako中,如果我想要重用一些特定的HTML,我可以把它放在一个“可调用块”中,可以从模板中的多个位置调用它。

<%def name="makerow(row)">
    <tr>
    % for name in row:
        <td>${name}</td>\
    % endfor
    </tr>
</%def>

Django有类似的东西吗?

1 个答案:

答案 0 :(得分:4)

在Django中,您可以包含其他HTML模板来完成此任务:

{% include "main/includes/subtemplate.html" %}

您可以在包含的模板中访问与包含它的父模板中相同的变量。这允许您在模板中的多个位置重用HTML。

另一种方法是创建自定义模板标记:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/这允许您创建自己的标记以生成HTML输出。 Django文档提供了有关如何执行此操作的各种示例。