Django模板引擎是Django框架的一個(gè)核心組件,用于渲染HTML模板。它使用Django模板語言(DTL)來編寫模板文件,支持動(dòng)態(tài)數(shù)據(jù)、邏輯控制和模板繼承等功能。在Django模板中,除了常規(guī)的HTML標(biāo)記和屬性外,還有一些特殊的模板標(biāo)簽和過濾器,用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)綁定和邏輯控制。
(資料圖片僅供參考)
if標(biāo)簽用于在模板中進(jìn)行條件判斷,語法如下:
{% if condition %} {% else %} {% endif %}
示例代碼:
{% if user.is_authenticated %} Welcome {{ user.username }}!
{% else %} Please log in.
{% endif %}
在這個(gè)示例中,我們使用if標(biāo)簽來檢查用戶是否已經(jīng)登錄。如果用戶已經(jīng)登錄,則在頁(yè)面中顯示歡迎消息,否則顯示一個(gè)提示讓用戶登錄。
for標(biāo)簽用于在模板中進(jìn)行循環(huán)迭代,語法如下:
{% for item in items %} {% empty %} {% endfor %}
示例代碼:
{% for product in products %} {{ product.name }} - ${{ product.price }}
{% empty %} No products available.
{% endfor %}
在這個(gè)示例中,我們使用for標(biāo)簽遍歷products列表,并在HTML頁(yè)面中顯示每個(gè)產(chǎn)品的名稱和價(jià)格。如果products列表為空,則顯示一條消息提示沒有產(chǎn)品可用。
block標(biāo)簽用于在模板中定義一個(gè)塊,以便在模板繼承中進(jìn)行覆蓋。它通常與extends標(biāo)簽一起使用。語法如下:
{% block block_name %} {% endblock %}
示例代碼:
{% extends "base.html" %}{% block content %} Welcome to my website
This is the home page
{% endblock %}
在這個(gè)示例中,我們?cè)赽ase.html模板中定義了一個(gè)名為content的塊。然后,我們?cè)趆ome.html模板中使用extends標(biāo)簽擴(kuò)展base.html,并覆蓋content塊的內(nèi)容,以在頁(yè)面中顯示自定義的內(nèi)容。
[責(zé)任編輯:linlin]
標(biāo)簽: