Django 筆記 - 特殊運算子 2

klchang發表於2024-05-31

前一篇博文介紹了 Django 中單獨符號構成的常用特殊運算子,這篇博文接著介紹 Django 中組合符號構成的特殊運算子,即 {{ }} 和 {% %}。這兩個組合符號構成的特殊運算子都用於 Django template,常用於 HTML 模板檔案。下面分別介紹這兩種特殊運算子:

{{ value }}

{{ value }} 可以在模板中顯示 Python 程式碼傳遞變數 value 的值。使用 {{ value|filter }} 語法,用 filter 函式對 value 值進行處理後,然後才在 HTML 模板中展示最終的結果。

例如,{{ messges|length }} 在 HTTP template 中顯示字串或列表 messages 的長度;下面的例子中,message為一條訊息資訊例項,tags 是 message 屬性,{{}} 除了可以單獨使用,還可以在字串中組合使用。

<div class="alert alert-{{message.tags}}">
    {{message}}
</div>

{% tag argment %}

採用 {% tag argment %} 語法,可以在 HTML template 中,使用 tag 和引數 argument 展示塊資料、邏輯判斷、迴圈迭代列表等。常用的 tag 有 extends、content、if、for 和 url。更多 tag 內容參見 Built-in tag reference - Django Documentation

具體例項,如下:

{% extends base.html %}

{% if messages %}
    {% for message in messages %}
        <div class="alert alert-{{message}}">
            {{message}}
        </div>
    {% endfor %}
{% endif %}
{% block content %}
<a href="{% url 'home' %}">Todo</a> {% endblock content %}

其中,extends tag 用於擴充套件 base.html,與類的繼承機制類似;if tag 用於邏輯判斷;for tag 用於迴圈迭代;url tag 用於獲得檢視名為 'home' 的 URL 地址;

參考資料

[1] Built-in template tags and filters. https://docs.djangoproject.com/en/5.0/ref/templates/builtins/

[2] Django Todo App. https://www.pythontutorial.net/django-tutorial/django-todo-app/

相關文章