2018年9月30日 星期日

Flask Jinja2

Jinja2是Flask默認支持的模版引擎,主要作用是渲染模板。

在layout.html中,用{% block body %}和{% endblock %}來綁訂其他頁面內容。所以在這個網頁中,我們可以制定網頁中共用的模板。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>MyFlaskApp</title>
</head><body>{% block body %} {% endblock %}
</body></html>

另外我們在home.html指定引用layout.html,並撰寫{% block body %}和{% endblock %}之間的網頁內容。

{% extends 'layout.html' %}  #

{% block body %}
 Home Welcome!
{% endblock %}

最後透過flask route造訪home.html時,會先執行layout.html文件,執行完畢後會帶出home.html內容。我們可以看執行結果如下:








如果你要在layout.html中嵌入其他頁面,可以用{% include '網頁來源' %}這個語法來完成。
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>MyFlaskApp</title></head><body>{% include './includes/menu.html' %}
{% block body %} {% endblock %}
</body></html>

其中menu.html如下:
<a href="https://www.jetbrains.com/pycharm"> pycharm </a> <br><a href="http://flask.pocoo.org/"> flask </a> <br>

執行結果就可以看到layout.html已經嵌入menu.html。



沒有留言:

張貼留言