包含
Jinja2模板中,除了宏和继承,还支持一种代码重用的功能,叫包含(Include)。它的功能相当于直接将另一个模板的内容直接copy进当前模板中。
包含(include)主要应用在一个模板内容太多的情况下,可以将其功能模块化分成多个模板,方便后期维护开发。
包含:
{% include 'top10.html' %}
包含在使用时,如果包含的模板文件不存在时,程序会抛出TemplateNotFound异常,可以加上ignore missing关键字。如果包含的模板文件不存在,会忽略这条include语句。
include的使用加上关键字ignore missing
{% include 'top10.html' ignore missing %}
- 宏、继承、包含相同点:
- 都可以实现代码的复用
- 宏、继承、包含不同点:
- 继承(Block)的本质是代码填充,一般用于多个页面有重复代码。
- 宏(Macro)的功能类似函数,可以传入参数,需要定义、调用。
- 包含(include)是本质是将其他模板代码直接复制过来,组成一个完整模板。