if
標籤:if
標籤相當於python
中的if
語句,有elif
和else
相對應,但是所有的標籤都需要用標籤符號()進行包裹。
if
標籤中可以使用==、!=、<、<=、>、>=、in、not in、is、is not
等判斷運算子。示例**如下:
張三<
/p>
李四<
/p>
for...in...
標籤:for...in...
類似於python
中的for...in...
。可以遍歷列表、元組、字串、字典等一切可以遍歷的物件。示例**如下:
}<
/p>
}<
/p>
遍歷字典的時候,需要使用items
、keys
和values
等方法。在dtl
中,執行乙個方法不能使用圓括號的形式。遍歷字典示例**如下:
key:
}<
/p>
value:
}<
/p>
在for
迴圈中,dtl
提供了一些變數可供使用。這些變數如下:
for...in...empty
標籤:這個標籤使用跟for...in...
是一樣的,只不過是在遍歷的物件如果沒有元素的情況下,會執行empty
中的內容。示例**如下:
}<
/li>
暫時還沒有任何人
with
標籤:在模版中定義變數。有時候乙個變數訪問的時候比較複雜,那麼可以先把這個複雜的變數快取到乙個變數上,以後就可以直接使用這個變數就可以了。示例**如下:
context =
}<
/p>
有幾點需要強烈的注意:
url
標籤:在模版中,我們經常要寫一些url
,比如某個a
標籤中需要定義href
屬性。當然如果通過硬編碼的方式直接將這個url
寫死在裡面也是可以的。但是這樣對於以後專案維護可能不是一件好事。因此建議使用這種反轉的方式來實現,類似於django
中的reverse
一樣。示例**如下:
"">圖書列表頁面<
/a>
如果url
反轉的時候需要傳遞引數,那麼可以在後面傳遞。但是引數分位置引數和關鍵字引數。位置引數和關鍵字引數不能同時使用。示例**如下:
# path部分
path(
'detail//'
,views.book_detail,name=
'detail'
)# url反轉,使用位置引數
"">圖書詳情頁面<
/a>
# url反轉,使用關鍵字引數
"">圖書詳情頁面<
/a>
如果想要在使用url
標籤反轉的時候要傳遞查詢字串的引數,那麼必須要手動在在後面新增。示例**如下:
"?page=1"
>圖書詳情頁面<
/a>
如果需要傳遞多個引數,那麼通過空格的方式進行分隔。示例**如下:
"">圖書詳情頁面<
/a>
spaceless
標籤:移除html標籤中的空白字元。包括空格、tab鍵、換行等。示例**如下:
"foo/"
>foo<
/a>
<
/p>
那麼在渲染完成後,會變成以下的**:
>
href
="foo/"
>
fooa
>
p>
spaceless
只會移除html標籤之間的空白字元。而不會移除標籤與文字之間的空白字元。看以下**:
hello
<
/strong>
這個將不會移除strong
中的空白字元。
autoescape
標籤:開啟和關閉這個標籤內元素的自動轉義功能。自動轉義是可以將一些特殊的字元。比如<
轉義成html
語法能識別的字元,會被轉義成<
,而>
會被自動轉義成>
。模板中預設是已經開啟了自動轉義的。autoescape
的示例**如下:
# 傳遞的上下文資訊
context =
# 模板中關閉自動轉義
}
}
verbatim
標籤:預設在dtl
模板中是會去解析那些特殊字元的。比如
以及
}still alive.
}
最淺顯易懂的Django系列教程(1) 虛擬環境
到目前位置,我們所有的第三方包安裝都是直接通過pip install xx的方式進行安裝的,這樣安裝會將那個包安裝到你的系統級的python環境中。但是這樣有乙個問題,就是如果你現在用django 1.10.x寫了個 然後你的領導跟你說,之前有乙個舊專案是用django 0.9開發的,讓你來維護,但...
最淺顯易懂的Django系列教程(7) 模板介紹
在之前的章節中,檢視函式只是直接返回文字,而在實際生產環境中其實很少這樣用,因為實際的頁面大多是帶有樣式的html 這可以讓瀏覽器渲染出非常漂亮的頁面。目前市面上有非常多的模板系統,其中最知名最好用的就是dtl和jinja2。dtl是django template language三個單詞的縮寫,也...
史上最淺顯易懂的Git教程1
最先進的分布式版本控制系統 沒有之一 cvs和svn,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用 集中式版本控制系統,版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給 伺服器。分布式版本控制系統...