Python Flask,Jinja2模板,模板繼承,模板包含
阿新 • • 發佈:2019-01-01
模板繼承與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)是直接將目標模板檔案整個渲染出來。