1. 模板引入
include 引入静态模板片段
macro 引入动态模板片段,宏本质也是一个函数,就是传入变量,编译出一段模板
2. 模板继承
extends 实现了一次性复用多个模板片段的功能,相当于多个macro。在布局复用上,非常有用,实现了母版页的功能。
例如,有layout.html,子模板只要继承它,就可以实现该布局,覆写自己的业务模板就行了,十分方便。
layout.html
{% block header %} This is the default content {% endblock %} <section class="left"> {% block left %}{% endblock %} </section> <section class="right"> {% block right %} This is more content {% endblock %} </section>
child.html
{% extends "layout.html" %}
{% block left %}
This is the left side!
{% endblock %}
{% block right %}
This is the right side!
{% endblock %}
3. 过滤器
本质也是一个函数,方便的对模板中的变量进行格式化,可以用管道来进行连续操作,相当一个偏函数,管道左侧是固定参数,右侧传入的参数的剩余的参数
<ul> {% asyncAll item in items %} <li>{{ item.id | lookup }}</li> {% endall %} </ul>