Jinja2:Flask應用中的高效模板引擎
Jinja2是一個純Python編寫的模板引擎,它提供了一種類似Django的非XML語法,同時支持內聯表達式和可選的沙箱環境。它小巧快速,易於使用,是一個獨立的模板引擎。 Flask是一個基於Python的微型web框架,它允許您快速高效地編寫web應用程序。
本系列教程將從Flask的角度出發,講解Jinja2模板的基礎知識。後續部分將介紹高級模板主題,並學習如何在基於Flask的應用程序中以模塊化和可擴展的方式佈局模板。
本教程假設您已掌握Flask基礎知識,並了解使用virtualenv進行Python應用程序開發的環境設置最佳實踐。
Flask自帶Jinja2,因此我們只需要安裝Flask即可。本系列教程建議使用Flask的開發版本,它包含更穩定的命令行支持,以及許多其他功能和改進。
pip install https://github.com/mitsuhiko/flask/tarball/master
在Flask中,我們可以在無需任何第三方模板引擎的情況下編寫完整的web應用程序。讓我們來看一個簡單的if、else和{% %}
塊的例子。更新home.html
頁面如下:
{% extends 'base.html' %} {% block container %} <div class="top-pad"> {% for id, product in products.items() %} <div class="well"> <h2> <a href="https://www.php.cn/link/0bbfd30c6d7efe2fff86061e79c010db'product', key=id) }}">{{product['name']}}</a> <small>$ {{ product['price']}}</small> </h2> </div> {% endfor %} </div> {% endblock %}
觀察這個模板如何擴展上層過濾器,如下所示:
{% extends 'base.html' %} {% block container %} <div class="top-pad"> {% for id, product in products.items() %} <div class="well"> <h2> <a href="https://www.php.cn/link/0bbfd30c6d7efe2fff86061e79c010db'product', key=id) }}">{{product['name']|upper}}</a> <small>$ {{ product['price']}}</small> </h2> </div> {% endfor %} </div> {% endblock %}
現在,如果您運行服務器,您應該會注意到產品名稱全部大寫。
在本教程中,我們學習瞭如何在基於Flask的應用程序中使用Jinja2佈局模板結構。我們還了解瞭如何使用塊在模板中利用繼承。
在本系列的下一部分中,我們將學習如何編寫自定義過濾器、自定義上下文處理器和宏。
此文章已更新,並包含來自Esther Vaati的貢獻。 Esther是Envato Tuts 的軟件開發人員和撰稿人。
以上是用瓶中的jinja2模板:要點的詳細內容。更多資訊請關注PHP中文網其他相關文章!