Django資料之模板標籤和過濾器

2021-09-28 20:09:50 字數 2795 閱讀 5374

...內容

1、for標籤:

}:}

forloop.counter            當前迴圈的索引值(從1開始),forloop是迴圈器,通過點來使用功能

forloop.counter0 當前迴圈的索引值(從0開始)

forloop.revcounter 當前迴圈的倒序索引值(從1開始)

forloop.revcounter0 當前迴圈的倒序索引值(從0開始)

forloop.first 當前迴圈是不是第一次迴圈(布林值)

forloop.last 當前迴圈是不是最後一次迴圈(布林值)

forloop.parentloop 本層迴圈的外層迴圈的物件,再通過上面的幾個屬性來顯示外層迴圈的計數等

迴圈序號可以通過{{forloop}}顯示

2、if標籤

if語句支援 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判斷,注意條件兩邊都有空格。

無效優秀

凑活吧

3、with標籤

用於給複雜變數賦值

}

過濾器支援「鏈式」操作。即乙個過濾器的輸出作為另乙個過濾器的輸入。

過濾器可以接受引數,例如:},這將顯示sss的前30個詞。

過濾器引數包含空格的話,必須用引號包裹起來。比如使用逗號和空格去連線乙個列表中的元素,如:}

變數|函式,意思是將變數交給函式處理,使用管道符"|"來應用過濾器,』|'左右沒有空格

}
1、default:

}  #如果乙個變數是false或者為空,使用給定的預設值。 否則,使用變數的值。
2、length

}  #返回值的長度,作用於字串和列表
3、filesizeformat

}  #將值格式化為檔案尺寸(例如 '13 kb', '4.1 mb', '102 bytes', 等等)
4、slice

} #切片
5、date

#格式化,如果 value=datetime.datetime.now()

}

6、safe

#讓鏈結value = "點我" 渲染,加上safe

}

7、truncatechars

#字元截斷,多餘的使用...來表示

} #注意:最後那三個省略號也是9個字元裡面的

8、truncatewords

#截多少個單詞(通過空格截斷)

} #例如:『hello girl hi baby yue ma』,結果是 'hello girl h1...'

9、cut

}  #移除value中的所有空格
10、join

使用字串連線列表,},就像python的str.join(list)
11、add

#value後邊新增2

}

12、urlencode

} #將obj編碼   ->http%3a
2.在templatetags中建立.py檔案,如my_tags.py

from django import template    

from django.utils.safestring import mark_safe

register = template.library() #register的名字是固定的,不可改變

#1.register.filter

@register.filter

def filter_multi(v1,v2):

return v1 * v2

#2.register.******_tag

@register.******_tag

def ******_tag_multi(v1,v2):

return v1 * v2

@register.******_tag

def my_input(id,arg):

result = "" %(id,arg,)

return mark_safe(result) #mark_safe保證生成標籤

3.在html中匯入之前建立的my_tags.py:

4.使用filter和******_tags

#首行

1.使用filter,最多能傳2個引數

} #24

}2.使用******_tag,能傳多個引數

自定義filter和******_tag區別:

1.filter最多傳2引數,******_tags能傳多個引數

2.filter的呼叫可寫在for/if語句中,******_tags不可

}

更詳細資訊請參考:

Django模板之模板標籤

標籤比變數更加複雜 一些在輸出中建立文字,一些通過迴圈或邏輯來控制流程,一些載入其後的變數將使用到的額外資訊到模版中。一些標籤需要開始和結束標籤 例如 標籤 內容.有些標籤不需要結束 快捷鍵 輸入tag直接回車 for標籤 迴圈遍歷可迭代變數中的每乙個元素,沒有break和continue等複雜功能...

django模板標籤

載入乙個模板,並根據上下文渲染它。用於在乙個模板中包含其他模板。標記當前模板擴充套件乙個父模板。這個標籤有兩種用法 1.直接使用要擴充套件的父模板的名字 html 2.用變數variable的值來指定父模板,如果變數是乙個字串,django會把字串的值當做父模板的檔名,如果變數是乙個template...

Django模板標籤

zqxt tutorial init py admin.py models.py templates tutorial index.html search.html tests.py views.py tryit init py admin.py models.py templates tryit ...