【发布时间】:2021-12-28 14:43:28
【问题描述】:
我非常精通 Mako,但从未真正使用过 Jinja 或 Django 模板。
Mako <%def name="..."> 定义的 Jinja/Django 等价物是什么?
以下是我的实际用例的简化示例。我需要定义一个简单的表格,并在页面上反复使用:
<%def name="temperature_table(north, east, south, west)">
<table>
<tr>
<td>North:</td>
<td>${north}</td>
</tr>
<tr>
<td>East:</td>
<td>${east}</td>
</tr>
<tr>
<td>South:</td>
<td>${south}</td>
</tr>
<tr>
<td>West:</td>
<td>${west}</td>
</tr>
</table>
</%def>
<h2>Morning</h2>
${weather_table(20, 21, 22, 23)}
<h2>Afternoon</h2>
${weather_table(22, 22, 25, 24)}
<h2>Night</h2>
${weather_table(17, 16, 17, 18)}
从我从各种文章中收集到的信息来看,blocks 似乎在 Jinja/Django 中用于此目的。但是即使是自定义小部件就足够的简单模板,块也会引入继承。其他作者建议创建自定义标签,但在我看来,这需要编写自定义解析、渲染,甚至可能需要自定义缓存管理功能。我错过了什么吗?
【问题讨论】:
标签: django-templates jinja2 mako