Django是否相当于Mako的可调用块?
在Mako中,如果我想要重用一些特定的HTML,我可以把它放在一个“可调用块”中,可以从模板中的多个位置调用它。
<%def name="makerow(row)">
<tr>
% for name in row:
<td>${name}</td>\
% endfor
</tr>
</%def>
Django有类似的东西吗?
答案 0 :(得分:4)
在Django中,您可以包含其他HTML模板来完成此任务:
{% include "main/includes/subtemplate.html" %}
您可以在包含的模板中访问与包含它的父模板中相同的变量。这允许您在模板中的多个位置重用HTML。
另一种方法是创建自定义模板标记:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/这允许您创建自己的标记以生成HTML输出。 Django文档提供了有关如何执行此操作的各种示例。