首頁 >web前端 >css教學 >用瓶中的jinja2模板:要點

用瓶中的jinja2模板:要點

Lisa Kudrow
Lisa Kudrow原創
2025-02-28 09:10:17387瀏覽

Jinja2:Flask應用中的高效模板引擎

Jinja2是一個純Python編寫的模板引擎,它提供了一種類似Django的非XML語法,同時支持內聯表達式和可選的沙箱環境。它小巧快速,易於使用,是一個獨立的模板引擎。 Flask是一個基於Python的微型web框架,它允許您快速高效地編寫web應用程序。

本系列教程將從Flask的角度出發,講解Jinja2模板的基礎知識。後續部分將介紹高級模板主題,並學習如何在基於Flask的應用程序中以模塊化和可擴展的方式佈局模板。

本教程假設您已掌握Flask基礎知識,並了解使用virtualenv進行Python應用程序開發的環境設置最佳實踐。

安裝包

Flask自帶Jinja2,因此我們只需要安裝Flask即可。本系列教程建議使用Flask的開發版本,它包含更穩定的命令行支持,以及許多其他功能和改進。

<code class="language-bash">pip install https://github.com/mitsuhiko/flask/tarball/master</code>

為什麼需要模板引擎?

在Flask中,我們可以在無需任何第三方模板引擎的情況下編寫完整的web應用程序。讓我們來看一個簡單的if、else和{% %}塊的例子。更新home.html頁面如下:

flask_app/templates/home.html

<code class="language-html+jinja">{% 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',%20key=id)%20%7D%7D">{{product['name']}}</a>
        <small>$ {{ product['price']}}</small>
    </h2>
    </div>
    {% endfor %}
</div>
{% endblock %}</code>

觀察這個模板如何擴展上層過濾器,如下所示:

<code class="language-html+jinja">{% 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',%20key=id)%20%7D%7D">{{product['name']|upper}}</a>
        <small>$ {{ product['price']}}</small>
    </h2>
    </div>
    {% endfor %}
</div>
{% endblock %}</code>

現在,如果您運行服務器,您應該會注意到產品名稱全部大寫。

Templating With Jinja2 in Flask: Essentials

總結

在本教程中,我們學習瞭如何在基於Flask的應用程序中使用Jinja2佈局模板結構。我們還了解瞭如何使用塊在模板中利用繼承。

在本系列的下一部分中,我們將學習如何編寫自定義過濾器、自定義上下文處理器和宏。

此文章已更新,並包含來自Esther Vaati的貢獻。 Esther是Envato Tuts 的軟件開發人員和撰稿人。

以上是用瓶中的jinja2模板:要點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn