Django模板語言的復用

2022-08-21 08:36:12 字數 3561 閱讀 1833

由於在專案中,往往會出現多個頁面擁有乙個或幾個相同的頁面版塊,或是乙個頁面多個頁面版塊是相同的,基於這個問題,我們可以採用模板語言復用include標籤來幫我們解決,這樣就避免了大量的複製貼上html頁面版塊**。

如何運用:可以將多個樣式標籤的集合進行封裝,對外提供版塊的名字(介面),在有該版塊的頁面中 中直接匯入即可。

語法:
公共的頁面版塊:

<

div

class

="public"

>

div>

公共的頁面版塊的樣式:

/*

static/css/public.css

*//*

該樣式檔案是為公告頁面**塊提供頁面布局的css樣式

*/.public

使用公共版塊的頁面:

doctype html

>

<

html

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>first

title

>

<

link

rel="stylesheet"

href

="/static/css/public.css"

>

head

>

<

body

>

body

>

html

>

doctype html

>

<

html

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>second

title

>

<

link

rel="stylesheet"

href

="/static/css/public.css"

>

head

>

<

body

>

body

>

html

>

view code

出現的問題:多個頁面有乙個相似的頁面版塊,不是完全相同的版塊,版塊內的細節不是完全一致的。

解決:可以採用模板語言復用,自定義inclusion_tag標籤來幫助我們解決這個問題,為了減少**的冗餘。

運用:1.先封裝相似的頁面標籤結果,為資料不同而且頁面標籤個數不同的地方採用django模板語言寫活(資料決定了最終標籤個數)。

3.在擁有該相似版塊的頁面中匯入自定義tag,並使用tag傳入具體實參即可。

自定義inclusion_tag:

from django.template import

library

register =library()

@register.inclusion_tag(

'public_tag.html

') #

將公共類似的頁面版塊傳入

defheader_list(list):

return

公共類似的頁面版塊:

<

ul class

="public_tag"

>

<

li>}

li>

ul>

使用公共版塊的頁面:

doctype html

>

<

html

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>first_tag

title

>

head

>

<

body

>

body

>

html

>

doctype html

>

<

html

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>second_tag

title

>

head

>

<

body

>

body

>

html

>

view code

出現的問題:多個頁面的多個版塊相同或相似,只有少部分版塊是自己獨有的,將共有的部分全部提出封裝,包含了頁面大部分版塊結構,所以我們稱之為母版。

解決:1.先封裝母版:大部分版塊相同或類似的base.html,在特定的位置留出相應的block介面;

2.每個需要運用母版頁面的頁面來繼承母版,;

3.在自己頁面中的任意位置書寫block中自身獨有的頁面內容 ... ;

4.如果需要繼承母版block中原有的內容,使用 } 來獲取。

公共的母版頁面:

doctype html

>

<

html

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>}

title

>

<

link

rel="stylesheet"

href

="/static/css/base.css"

>

head

>

<

body

>

body

>

html

>

繼承母版的login頁面:

<

link

rel="stylesheet"

href

="/static/css/login.css"

>

<

div

class

="login"

>登入頁面獨有的登入板塊

div>

Django模板語言

1.1 模板由兩部分組成 html 邏輯控制 1.2 作用 快速生成html頁面 1.3 優點 模板的設計實現了業務邏輯與現實內容的分離 檢視可以使用任何模板 1.4 模板處理 載入 渲染 2.1 只需要記兩種特殊符號 和 變數相關的用 邏輯相關的用。2.2 邏輯相關 2.2.1.if判斷 2.2....

Django 模板語言

1.深度變數查詢 點號 2.變數的過濾器filter 語法格式 冒號前後不能有空格 filter函式 add 給obj增加數值 capfirst 首字母大寫 cut 移除字串中的指定字元 date 格式化日期字串 default 如果值是false,就提換成設定的預設值,否則就用原本的值,將傳過來的...

django 模板語言

模版模板語言運算 django模版加法 value 5,則返回15 django模版減法 django模版減法 value 5,則返回 5,這個比較好理解,減法就是加乙個負數 django模版除法 上面的 表示 5 1 100,返回500,widthratio需要三個引數,它會使用 引數1 引數2 ...