Python Flask,Jinja2模板,模板继承,模板包含

模板继承与Django中的模板继承一样。 参考:https://blog.csdn.net/houyanhua1/article/details/85004048

templates/base.html(模板,父模板):

  {% block top %}
    顶部菜单(子模板可以使用父模板中的默认内容,也可以重写)
  {% endblock top %}

  {% block content %}
  {% endblock content %}

  {% block bottom %}
    底部
  {% endblock bottom %}

templates/demo.html(模板,子模板,模板继承):

  {% extends 'base.html' %}
  {% block content %}
   需要填充的内容
  {% endblock content %}

Jinja2模板还支持模板包含

它的功能是将另一个模板整个加载到当前模板中,并直接渲染。

示例:

include的使用

{% include 'hello.html' %}

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

示例:

include的使用加上关键字ignore missing

{% include 'hello.html' ignore missing %}

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

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/85468332