模板代码的复用: 宏 继承 包含

Posted exchange<>

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板代码的复用: 宏 继承 包含相关的知识,希望对你有一定的参考价值。

当多个模板具有相同的顶部/底部内容/部分内容时,可以使用这三者来实现

宏是一个函数, 返回一个模板或者html字符串

  • 定义宏
{% macro input(name,value=‘‘,type=‘text‘) %}
    <input type="{{type}}" name="{{name}}"
        value="{{value}}" class="form-control">
{% endmacro %}
  • 调用宏
{{ input(‘name‘ value=‘zs‘)}}
继承: 重用模板公共内容 :
{% block top %} {% endblock %}
  • 不支持多继承
  • 为了便于阅读,在子模板中使用extends时,尽量写在模板的第一行。
  • 不能在一个模板文件中定义多个相同名字的block标签。
  • 当在页面中使用多个block标签时,建议给结束标签起个名字,当多个block嵌套时,阅读性更好。

包含: 将另一个模板整个加载到当前模板中,并直接渲染。

  • include的使用
{% include ‘hello.html‘ %}

包含在使用时,如果包含的模板文件不存在时,程序会抛出TemplateNotFound异常,可以加上 ignore missing 关键字。如果包含的模板文件不存在,会忽略这条include语句。

  • include 的使用加上关键字ignore missing
{% include ‘hello.html‘ ignore missing %}

  • 宏(Macro)、继承(Block)、包含(include)均能实现代码的复用。
  • 继承(Block)的本质是代码替换,一般用来实现多个页面中重复不变的区域。
  • 宏(Macro)的功能类似函数,可以传入参数,需要定义、调用。
  • 包含(include)是直接将目标模板文件整个渲染出来

以上是关于模板代码的复用: 宏 继承 包含的主要内容,如果未能解决你的问题,请参考以下文章

03-模板(过滤器,代码复用,表单,CSRF)

12. 爬虫训练场项目,jinja2 模板继承,项目继续迭代

FlaskFlask框架中的模板代码复用

12_关于flask中的宏

Flask08 包含(include)继承(extends)宏???模板中变量的来源

C++--模板的概念和意义深入理解函数模板类模板的概念和意义