Django中templates的使用

2021-08-28 02:38:23 字數 3797 閱讀 7114

1、templates用來放置模板檔案

1、templates 該目錄本身沒有,如果我們需要使用,需要我們自己建立,該目錄名通常為templates

2、建立位置:

1、直接在應用下建立該目錄,應用下的html模板,能直接在應用下的views中使用,一般也只給自己的應用使用

2、直接在專案下建立該目錄,在專案下建立的目錄,所有的應用中的views都可以方便的使用

3、如果是專案下的templates目錄,需要配置才可以使用

配置:1、在setting的templates中配置

如:'dirs':[os.path.join(base_dir,'templates')],

2、專案不能識別templates為模板目錄,需要將該目錄標記成模板目錄才可以使用

標記:templates目錄右鍵--mark directory as---template folder

看到目錄變成紫色即可

4、如果遇到template不能識別,重新做以上操作

2、模板語法

1、變數

1、變數通常在views中定義,然後傳遞給模板,模板中直接使用就可以

2、使用的語法:} 用兩個{}

3、注意:如果模板中的變數沒有定義就使用了,模板不會報錯,當作空使用

2、 . 語法

1、. 可以用來呼叫屬性

格式:物件名.屬性名

2、. 可以用來呼叫方法

格式:物件名.方法名 注意不加()

3、如果 . 用在集合(list,tuple...)的後面,可以連線索引,可以獲取索引位置的值

格式:集合.索引 相當於python的:集合[索引]

4、如果 . 用來字典的後面,可以獲取key對應的值

格式:字典.key 相當於python的:字典[key]

3、for迴圈

注意:有結束標籤
1、格式1:

迴圈體

2、格式2:

迴圈體如果集合為空,應該顯示的內容

3、forloop 迴圈的計數器

forloop.first   是否是第乙個資料

forloop.last 是否是最後乙個資料

forloop.counter 從1開始計數

forloop.counter0 從0開始計數

forloop.revcounter 從1開始計數,倒著計數,即最大數是第乙個

forloop.revcounter0 從0開始計數,倒著計數,即最大數是第乙個

4、判斷語句

1、格式1:

如果滿足條件就執行表示式

2、格式2:

如果滿足條件就執行表示式

否則執行表示式2

3、格式3

如果滿足條件1執行表示式1

如果滿足條件2執行表示式2

否則執行表示式3

4、格式4:判斷兩個值是否相等

如果value1等於value2執行表示式

注意:當value1與value2值相等,且型別也一樣的時候才成立

5、格式5:判斷兩個值是否不相等

如果value不等於value2執行表示式

5、比較運算子

>   大於

< 小於

>= 大於等於

<= 小於等於

== 等於(型別也要一直)

!= 不等於

**表示範圍的語法結果一般有結果標籤,一般是

6、注釋:

這是多行注釋 快捷鍵:ctrl+shift+/

這種注釋方法在控制台可見,一般不要使用

7、其他

1、加法/減法運算

加法:格式}  value 值

減法:格式} value -值

2、乘法/除法運算

格式:

相當於 value * 分子/分母

除法 乘法

3、是否整除某個數

格式:}  value是否能整除值

需求:隔行換色}}

4、大小寫轉換

轉換成小寫:}

轉換成大寫:}

5、字串拼接

字串拼接:}
8、轉義字元

問題:預設情況下,如果views檢視函式傳遞給模板的是乙個html格式的字串,預設模板中的html標籤不會生鏽,而有時候需要html標籤生效
使標籤生效

使用 autoescape

這裡面的內容就是不生效的html字串

}這裡面的內容就是生效的html字串

}

9、模板的繼承

子模板可以繼承乙個父模板,即可以繼承父模板的css/html/js
1、如何繼承

1、定義乙個父模板base.html,通常在父模板寫一些通用的功能

2、定義乙個子模板index.html,在子模板的首行寫,就可以繼承父模板中的所有css/html/js

2、block

在繼承中可以block來在父模板中挖坑,挖坑可以給子類內容設定乙個預留位置,方便子類在對應的位置填充內容
1、在父類中挖坑

在需要填充子模板內容的地方寫上:

2、在子類中填坑

填充內容

3、填坑保留父模板內容

可以在填坑的首行加上}

如: }

注意

可以挖多個坑

填坑的時候不需要按照順序

沒有填的坑,就是空內容

3、思想

1、化整為零

將乙個完整的html用block劃分成很多的小塊,開發者只需要考慮填充對應的小模組即可
2、化零為整

將多個零散的html用include在乙個html中包含進來,可以拼接成乙個完整的html

將零散的html拼接成乙個完整的html

10、模板的簡單載入原理

模板的載入過程

def loadtem(request):

1、先將模板載入到views函式中

template = loader.get_template('loadtem.html')

2、把資料給模板,並轉換成html形式的字串

htmldata = template.render(context = )

3、把資料作為相應體,給客戶端 html的本質就是字串

Django學習 建立template

1 在應用目錄下建立乙個templates資料夾,而後在檔案中建立需要的html檔案 2 而後在應用目錄的views.py中用render 函式將template加入進來,並且可以傳遞資料。傳入的資料在html中用 資料繫結的形式讀取資料。render 函式 第乙個引數為呼叫它函式的請求,第二個引數...

Django網路框架 Template模板

應用下 放在應用下的templates中,可以不用註冊,無法跨應用地進行復用 工程下 放在工程裡的templates中,需要在settings.py中註冊,可以復用 讀資料 屬性 方法 下標 第幾個 字典 本身 注釋 注釋若干內容.繼承和兼併 django的html介面是可以繼承的 用block分成...

Django 模板系統(template)總結

1.模板系統 指html頁面。2.常用符號 1 在模板中解析變數 2 在模板中進行邏輯相關操作 注釋 單行注釋。3 變數 在django的模板系統中變數使用的語法 當模版引擎遇到變數,就會用值替換掉變數。變數的命名可以是 字母數字以及下劃線 的組合。變數名稱中不能有空格或標點符號。3.檢視函式替換頁...