Flask模板 (二)
阿新 • • 發佈:2018-03-24
包含 其他 多個 nav OS div 文件中 模版 gpo
宏
Jinja2模板支持宏。這裏的宏類似於Python中的函數。
{% macro render_comments %} <li>{{ comment }}</li> {% endmacro %} <ul> {% for comment in comments %} {{ render_comments(comment) }} {% endfor %} </ul>
宏可通過單獨保存在文件中多次使用,在使用的時候導入:
{% import ‘macros.html‘ as macros %} <ul> {% for comment in comments %} {{ macro.render_comment(comment) }} {% endfor %} </ul>
需要多次使用的代碼片段可以寫入單獨文件,再包含於所有模板中,避免重復。在模板中輸入
{% include ‘comment.html‘ %}
模板的導入
模板分為多個塊,不影響HTML的編譯。使用{% block name %}和{% endblock %}來分割。
此處使用extends繼承其他模板的基礎內容。若後面沒有任何內容則相當於復制導入的模板,若再次定義模板中的塊則實現對原模版的更改。
若在原模版內容基礎上添加新的內容,則用變量{{ super() }}代表原模板的內容。
{% extends "bootstrap/base.html" %} {% block title %} IceTouched {% endblock %} {% block navbar %} ... ... {% endblock %} {% block content %} <div class="container"> {% block page_content %}
{{super()}}
Hello
{% endblock %} </div> {% endblock %}
Flask模板 (二)