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.檢視函式替換頁...