1. 程式人生 > >Python Flask,Jinja2模板,模板繼承,模板包含

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)是直接將目標模板檔案整個渲染出來。