Django Templates模板語法 四

2021-10-11 10:33:29 字數 2304 閱讀 5733

先三步走:

1.在應用下建立乙個名字」必須「叫templatetags資料夾

2.在該資料夾內建立「任意」名稱的py檔案 eg:mytag.py

3.在該py檔案內"必須"先書寫下面兩句話(單詞乙個都不能錯)

:# 模板語法可以傳遞的後端資料型別

n =123return render(request,

'index.html'

,locals()

)

from django import template

register = template.library(

)# 自定義過濾器(引數最多兩個)

@register.

filter

(name=

'baby'

)def

my_sum

(v1, v2)

:return v1 + v2

index.html

>

# 使用

>

自定義過濾器的使用(過濾器只能最多有兩個引數)h1

>

>

}p>

body

>

# 自定義標籤(引數可以有多個)	類似於自定義函式

from django import template

register = template.library(

)@register.******_tag(name=

'plus'

)def

index

(a,b,c,d)

:return

'%s-%s-%s-%s'

%(a,b,c,d)

# 使用

>

自定義標籤的使用h1

>

標籤多個引數彼此之間空格隔開

>

p>

內部原理:

先定義乙個方法

在頁面上呼叫該方法,並且可以傳值

該方法會生成一些資料然後傳遞給乙個html頁面

之後將渲染好的結果放到呼叫的位置

from django import template

register = template.library(

)# 自定義inclusion_tag

@register.inclusion_tag(

'left_menu.html'

)def

left

(n):

data =

['第{}項'

.format

(i)for i in

range

(n)]

# 第一種

# return # 將data傳遞給left_menu.html

# 第二種

return

locals()

# 將data傳遞給left_menu.html

templates/left_menu.html

# left_menu.html不需要是完整的html格式

>

>

}li>

ul>

index.html

>

>

inclusion_tag的使用h1

>

body

>

# 總結:當html頁面某乙個地方的頁面需要傳引數才能夠動態的渲染出來,並且在多個頁面上都需要使用到該區域性,

那麼就考慮將該區域性頁面做成inclusion_tag形式.

Django Templates模板語法 一

變數相關 邏輯相關urls.py urlpatterns url r admin admin.site.urls url r index views.index views.py def index request 模版語法可以傳遞的後端python資料型別 n 123 f 11.11 s 我也想奔...

Django Templates模板語法 二

過濾器就類似於是模版語法內建的內建方法.django內建有60多個過濾器,我們不需要學這麼多,了解10個左右就差不多了,後面碰到了再去記憶.基本語法 轉義 前端 safe 後端 from django.utils.safestring import mark safe res mark safe 在...

Django templates模板語法的傳值

模板語法的格式 基本語法傳值研究 研究函式 def func print 無參函式 return 無參函式返回值 def func1 xx print 有參函式 return 有參函式返回值 特點 傳遞函式名會自動加括號呼叫,但是模板語法不支援給函式傳額外的引數 研究類 class myclass ...