最淺顯易懂的Django系列教程(9) 常用標籤

2021-10-06 03:30:49 字數 2971 閱讀 8869

if標籤:if標籤相當於python中的if語句,有elifelse相對應,但是所有的標籤都需要用標籤符號()進行包裹。if標籤中可以使用==、!=、<、<=、>、>=、in、not in、is、is not等判斷運算子。示例**如下:

張三<

/p>

李四<

/p>

for...in...標籤:for...in...類似於python中的for...in...。可以遍歷列表、元組、字串、字典等一切可以遍歷的物件。示例**如下:

}<

/p>

}<

/p>

遍歷字典的時候,需要使用itemskeysvalues等方法。在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,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用 集中式版本控制系統,版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給 伺服器。分布式版本控制系統...