前一篇博文介紹了 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/