Django自學筆記 3 3 模板常用語法

2021-10-06 07:46:13 字數 2461 閱讀 2527

————總目錄——前言——框架版本————

********************=== 大爽歌作,made by big shuang ********************===

本文主要參考:

模板語法的四種結構中,comments(注釋)結構都是固定的,沒有什麼其他的變化和方法。

所以這裡介紹下其他三種結構的各種用法。

該結構基礎用法為

}

python為物件導向語言,所以程式裡也會有各種物件,該結構中獲取變數物件的某種屬性的值和python的寫法一樣

}

這裡有乙個需要特別介紹的,就是該結構中如何使用變數物件的某種方法:

該結構中只能使用變數物件無需傳參的方法。

該結構中呼叫變數物件的方法時,不要在方法名後加括號()

舉例如下

classa:

defvalid_method

(self)

:return

"it's a valild method"

definvalid_method

(self, param)

:return

"it's an invalild method because it has a redundant param"

上面是乙個名為a的類,其第乙個方法是可以在該結構中呼叫的

呼叫方法如下,其中aa的乙個例項

}

該呼叫語句會再html中生成的對應文字為"it's a valild method"

第二個方法則是不可以在該結構中呼叫的,因為它包含乙個引數param,該語法結構中無法調入需要傳參的方法。

類方法中self是類物件本身,所以不算做引數。

拓展介紹

上面我們展示了點這個操作符:.(dot operator)在模板中可以獲取物件屬性或者呼叫物件的方法。

不過具體的實際情況比這要複雜一些。

從技術上講,當模板系統遇到乙個點時,它會先後嘗試用以下方式來理解.這個點操作符並執行相應的查詢:

比如這樣的**:

}
具體執行時,會

同時由於有三種查詢方式,有可能會導致衝突,第三種一般不會和其他兩種衝突。

第一種和第二種有可能衝突,即字典鍵和字典物件本身具有的屬性名或者方法名重名時,會導致後者無法獲取到,所以要避免這種重名。

詳細官方文件: ref/templates/language/#variables

url: 調整url寫法

返回與給定檢視和可選引數匹配的絕對路徑引用(不帶網域名稱的url)。

"/register/"

>register<

/a>

統一改為通過urls.py裡面指定的urlpattern的name來訪問

"">register<

/a>

好處:如果有url修改的話,只需要改一次urlpattern,不用去把所有有url的地方都修改一遍

更多資訊:#url

for: 迴圈

迴圈遍歷陣列中的每個項,使該項在上下文變數中可用。

寫法: (一定要用endfor結尾)

..

.

示例

}<

/li>

<

/ul>

if: 條件判斷

標籤計算乙個變數,如果該變數為「true」(即存在,不為空,不為false boolean值),則輸出塊的內容:

寫法: (一定要用endif結尾)

..

....

...

示例

number of athletes:

} athletes should be out of the locker room soon!

no athletes.

其他常用tags及用法將在後續相關章節中介紹

模板繼承:blockendblockextends

todo: filters感覺新手基本用不到(或者不習慣去用),未來本小部分可能會放在乙個拓展小節中去講。

Django模板筆記

有些模版 是重複的。因此可以單獨抽取出來,以後 需要用到,就直接使用include進來就可以了。如果想要在include子模版的時候,傳遞一些引數,那麼可以使用with 的形式。示例 如下 在前端頁面開發中。有些 是需要重複使用的。這種情況可以使用include標籤來實現。也可以使用另外乙個比較強大...

Django 模板筆記

變數 檢視傳遞給模板的資料,要遵循識別符號規則 語法 注意 如果變數不存在,則插入的是空字串 在模板中使用點語法 1 字典 2 屬性或者方法 3 數字索引 在模板中呼叫物件中的方法,不能傳遞引數 語法 作用 1 在輸出中建立文字 2 控制邏輯或者迴圈 格式 語句 語句語句2 格式 語句語句2 注意 ...

Django自學筆記之快取

設定快取 django自帶了乙個健壯的快取系統來儲存動態頁面 快取到本地記憶體中 caches 將cache存到redis中,預設採用1資料庫,需要安裝包並配置如下 安裝包 pip install django redis cachesettings.py中配置 caches views.py中 f...