1.1、模板由兩部分組成: html** 邏輯控制**
1.2、作用: 快速生成html頁面
1.3、優點: 模板的設計實現了業務邏輯與現實內容的分離 ; 檢視可以使用任何模板
1.4、模板處理 : 載入 ; 渲染
2.1、只需要記兩種特殊符號:
}和 , 變數相關的用},邏輯相關的用。
2.2、 邏輯相關:
2.2.1. if判斷
2.2.2. for迴圈
1. for迴圈的基本用法
}
}空空如也
2. for迴圈可用的屬性:
forloop.counter
forloop.counter0
forloop.revcounter
forloop.revcounter0
forloop.first
forloop.last
2.3、過濾器 (filters)
2.3.1、語法:在django的模板語言中,通過使用 過濾器 來改變變數的顯示。過濾器的語法: }。使用管道符"|"來應用過濾器。
2.3.2、作用
在變數被顯示前修改它
2.3.3、過濾器可以傳遞引數,引數用引號引起來:join
格式:列表 | join:'#' 示例:
2.3.4、如果乙個變數沒有被提供,或者值為false、空,可以使用預設值 default
格式:}
示例:
2.3.5、根據給定格式轉換日期為字串 :date
格式:}
2.3.6、
2.3.7、注釋
3.1、作用 : 模板繼承可以減少頁面的內容的重複定義,實現頁面的重用
3.2、block標籤:在父模板中預留區域,字模板去填充
語法:
3.3、extends標籤: 繼承模板,需要寫在模板檔案的第一行(必須)
語法:
3.4、定義父模板
定義子模板
3.5、以下是使用模板繼承的一些訣竅:
如果在模板中使用 ,必須保證其為模板中的第乙個模板標記。 否則,模板繼承將不起作用。
一般來說,基礎模板中的 標籤越多越好。 記住,子模板不必定義父模板中所有的**塊,因此你可以用合理的預設值對一些**塊進行填充,然後只對子模板所需的**塊進行(重)定義。 俗話說,鉤子越多越好。
如果發覺自己在多個模板之間拷貝**,你應該考慮將該**段放置到父模板的某個 中。
如果你需要訪問父模板中的塊的內容,使用 }這個標籤吧,這乙個魔法變數將會表現出父模板中的內容。 如果只想在上級**塊基礎上新增內容,而不是全部過載,該變數就顯得非常有用了。
不允許在同乙個模板中定義多個同名的 。 存在這樣的限制是因為block 標籤的工作方式是雙向的。 也就是說,block 標籤不僅挖了乙個要填的坑,也定義了在父模板中這個坑所填充的內容。如果模板**現了兩個相同名稱的 標籤,父模板將無從得知要使用哪個塊的內容。
對所傳入模板名稱使用的載入方法和 get_template() 相同。 也就是說,會將模板名稱被新增到 template_dirs 設定之後。
多數情況下, 的引數應該是字串,但是如果直到執行時方能確定父模板名,這個引數也可以是個變數。 這使得你能夠實現一些很酷的動態功能。
4.1、可以將常用的頁面內容如導航條,頁尾資訊等元件儲存在單獨的檔案中,然後在需要使用的地方按如下語法匯入即可。
在settings.py中的middleware增加『django.middleware.csrf.csrfviewmiddleware』 Django 模板語言
1.深度變數查詢 點號 2.變數的過濾器filter 語法格式 冒號前後不能有空格 filter函式 add 給obj增加數值 capfirst 首字母大寫 cut 移除字串中的指定字元 date 格式化日期字串 default 如果值是false,就提換成設定的預設值,否則就用原本的值,將傳過來的...
django 模板語言
模版模板語言運算 django模版加法 value 5,則返回15 django模版減法 django模版減法 value 5,則返回 5,這個比較好理解,減法就是加乙個負數 django模版除法 上面的 表示 5 1 100,返回500,widthratio需要三個引數,它會使用 引數1 引數2 ...
django常用模板語言
filters來改變變數最終顯示的值。過濾器就像這樣 這是將name變數通過lower過濾器全部轉換為小寫字母。用來呼叫過濾器。過濾器可以是鏈式的,乙個過濾器的輸出會被用在下乙個。是一種通用的形式用來將文字內容轉義,然後再轉為標籤以適用html。有些過濾器帶引數。例如以下帶參過濾器 意思是只展示bi...