Django之自定義模板和過濾器 靜態檔案配置

2021-10-04 01:52:27 字數 3391 閱讀 7879

1.需要在應用資料夾下建立templatetags資料夾,必須是這個名字。

2.templatetags資料夾建立乙個xx.py檔案,檔名隨便起

3.建立自定義過濾器

from django import template

register = template.library(

)#必須這個名字

#自定義過濾器

@register.

filter

defoo

(v1,v2)

: s = v1 + v2

return s

html中:

"en"

>

"utf-8"

>

title<

/title>

<

/head>

}#沒有引數

}#有引數

#引數最多兩個

<

/body>

<

/html>

建立標籤:

from django import template

register = template.library(

)# 自定義標籤

@register.******_tag

defmytag

(v1,v2,v3)

: s = v1 +

'test'

+ v2 +

' '

+ v3

return s

html檔案:

"en"

>

"utf-8"

>

title<

/title>

<

/head>

#}<

/h1>

<

/body>

<

/html>

建立inclusion_tag:

# inclusion_tag

@register.inclusion_tag(

'inclusiontag.html'

)#將inclusiontag.html裡面的內容用下面函式的返回值渲染,然後作為乙個元件一樣,載入到使用這個函式的html檔案裡面

deffunc()

:return

xx.html檔案中(這個檔案類似於乙個元件):

"en"

>

"utf-8"

>

title<

/title>

<

/head>

#迴圈列印func的值

}<

/li>

<

/ul>

<

/body>

<

/html>

oo.html檔案中:

"en"

>

"utf-8"

>

title<

/title>

<

/head>

#這裡會載入xx.html裡面的內容,功能和上篇問斬的的include類似

還可以傳參:

1.後端**:

def

xxoo

(request)

: s1 =

'張三和李四'

li =[11

,22,33

,44,55

,66]return render(request,

'xxoo.html'

,)

前端**:

xxoo.html

"en"

>

"utf-8"

>

title<

/title>

<

/head>

<

/body>

<

/html>

templatetags資料夾下xx.py

# inclusion_tag

@register.inclusion_tag(

'inclusiontag.html'

)def

func

(v1)

:return

xx.html:

"en"

>

"utf-8"

>

title<

/title>

<

/head>

}<

/li>

<

/ul>

<

/body>

<

/html>

流程:

後端將引數傳給func函式v1,func返回的值給inclusiontag.html去渲染,xxoo.html執行func函式

需要在專案資料夾下建立乙個靜態資料夾(statics),名字隨便起

settings.py檔案中需要配置一下:

#靜態路徑  給下面的路徑staticfiles_dirs起個別名

static_url =

'/static/'

staticfiles_dirs =

[ os.path.join(base_dir,

'statics'

)]

html檔案中使用:

#先載入

"en"

>

"utf-8"

>

title<

/title>

"stylesheet" href=

"">

#標籤的寫法

<

/head>

/h1>

<

/body>

<

/html>

:獲取靜態檔名:起別名,下次用的時候直接用xx就行:

Django自定義模板過濾器

比如,現在通過資料採集,得到了全國3億人的生日,然後要在前端進行展示,但是,由於資料 多處,導致生日的格式各種各樣,比如 1983 02 03 2016年4月16日,這個時候如果資料採集過程當中沒有進行資料過濾,就需要有一種功能針對每一條資料的日期進行修改。這時候就需要用到過濾器了。在templat...

django 自定義模板標籤和過濾器

django 自定義模板標籤和過濾器 1.建立乙個模板庫 books init py models.py templatetags views.py 在 templatetags 中建立兩個空檔案 乙個 init py 告訴python這是乙個包含了python 的包 和乙個用來存放你自定義的標籤 ...

Django 自定義模板標籤和過濾器

想要實現自定義標籤和過濾器需要進行準備工作 準備 必需 工作 polls init py models.py templatetags init py mytags.py views.py django.contrib.admin django.contrib.auth django.contrib...