django4 模板高階

2022-08-15 19:33:14 字數 2109 閱讀 1764

1.模板系統的語法

引用變數資料: }

標籤邏輯操作:

2.變數

變數名由字元數字下劃線組成 ,可以執行由檢視函式傳過來的物件的方法和屬性 ,但是檢視函式中如果使用 ' . ' 執行物件的方法無法傳參

#

views.py

#

模板語法 ,不能使用括號() ,所以無法傳參列表}

字典

如果有鍵是keys ,那麼優先順序為先找鍵 ,再去找屬性方法

}} } }

物件相關}}

}

3. 變數二次處理

變數可以使用管道做二次處理 ,過濾器是一些已經定義好的處理方法 ,管道可以有多個處理多次

語法: }

default   #給變數設定預設值

add     #把變數拼接與引數

length    #把變數的長度列印出來 ,不能對int型別操作

slice    #切片

first     #第乙個元素

last     #最後乙個元素

date    #將日期格式化

truncatechars  #保留指定長度字串 ,後續變為...

safe    #如果是** ,不加safe預設是不執行的 ,以字串顯示 ,加了這個就可以執行

4.標籤邏輯操作

常用邏輯有 for if with csrf_token url ,可以使用tab鍵補全格式

1) for迴圈

for迴圈內部可以使用的一些方法

forloop.counter      #列印本次迴圈是第幾次

forloop.counter0       #列印本次迴圈是第幾次(從0開始)

forloop.revcounter       #倒敘列印本次迴圈第幾次

forloop.revcounter0     #倒敘列印本次迴圈第幾次(從0開始)

forloop.first        #如果是第一次迴圈 ,返回true

forloop.last        #如果是最後一次迴圈, 返回false

forloop.parentloop     #列印外層迴圈 (多層迴圈使用) ,可以在子迴圈中使用父迴圈的forloop的方法

empty           #當整個for迴圈中empty以上**沒有生成 ,則執行empty下面的**

class="

table table-bordered

">

if forloop.parentloop.first %}class='

info

'>}}}

2)if判斷

if運用比較靈活可以寫在乙個標籤中 ,控制標籤的屬性 如: "}"

#add是加法和減法

3)with別名

with別名區域 ,在指定區域中乙個變數可以通過別名方式引用

}}

5.模板與繼承

模板: 就是乙個普通的html頁面 ,但是是公共部分 ,有效避免**重複 ,寫多個不同的block塊 ,子頁面中邏輯的內容放入block中 ,通常css和js的引用也會設計乙個block

子頁面繼承模板方法 :

頁面第一行

6.元件

元件也是避免**重複 ,是一小塊** ,需要給很多頁面使用

元件使用

#

zj.html#

其他頁面引用

7.靜態檔案配置名

和路有別名作用差不多 ,為了防止static靜態目錄名的變更 ,我們將靜態目錄起個別名放在settings中 ,所有模板中引用靜態檔案的時候 ,直接使用靜態檔案別名或相對路徑即可

#

settings.py

staticfiles_dirs =[

os.path.join(base_dir,

'static

') #

指定靜態檔案的根目錄]#

html頁面引用靜態檔案

#匯入靜態檔案

#引用靜態檔案

Django 4 靜態資源載入

先看目錄結構 專案目錄 statics crm style 設定setting.py 靜態檔案路徑 html 中引用靜態資源 3.1 直接引用路徑 rel stylesheet type text css href static crm css login.css 絕對路徑引用時需要加 絕對路徑標識...

django 高階 模板

模板概述 django處理模板分為兩個階段 檢視呼叫模板 呼叫模板分為三步驟 開啟booktst views.py檔案,呼叫上面定義的模板檔案 from django.http import httpresponsefrom django.template import loader,request...

django 模板高階

1.語法 1.1.for迴圈 forloop.counter 從1開始 forloop.counter0 從0開始 forloop.revcounter 倒序到1 forloop.revcounter0 倒序到0 forloop.first 第一次迴圈出的結果為true 其他為flase forlo...