>
}h1>
jinja2 模版中的變數**塊可以是任意 python 型別或者物件,只要它能夠被 python 的 str() 方法轉換為乙個字串就可以,比如,可以通過下面的方式顯示乙個字典或者列表中的某個元素:
}}
'/'
)def
index()
:# 往模板中傳入的資料
my_str =
'hello word'
my_int =
10 my_array =[3
,4,2
,1,7
,9] my_dict =
return render_template(
'temp_demo1.html'
, my_str=my_str,
my_int=my_int,
my_array=my_array,
my_dict=my_dict
)
lang
="en"
>
>
charset
="utf-8"
>
>
titletitle
>
head
>
>
我的模板html內容
/>
}/>
}/>
}/>
}body
>
html
>
過濾器的本質就是函式。有時候我們不僅僅只是需要輸出變數的值,我們還需要修改變數的顯示,甚至格式化、運算等等,而在模板中是不能直接呼叫 python 中的某些方法,那麼這就用到了過濾器。
使用方式:
}
}
在 jinja2 中,過濾器是可以支援鏈式呼叫的,示例如下:
}
}<
/p>
}<
/p>
}<
/p>
}<
/p>
}
過濾器的本質是函式。當模板內建的過濾器不能滿足需求,可以自定義過濾器。自定義過濾器有兩種實現方式:
重要:自定義的過濾器名稱如果和內建的過濾器重名,會覆蓋內建的過濾器。
方式一通過呼叫應用程式例項的 add_template_filter 方法實現自定義過濾器。該方法第乙個引數是函式名,第二個引數是自定義的過濾器名稱:
def
do_listreverse
(li)
:# 通過原列表建立乙個新列表
temp_li =
list
(li)
# 將新列表進行返轉
temp_li.reverse(
)return temp_li
'lireverse'
)
方式二
用裝飾器來實現自定義過濾器。裝飾器傳入的引數是自定義的過濾器名稱。
'lireverse'
)def
do_listreverse
(li)
:# 通過原列表建立乙個新列表
temp_li =
list
(li)
# 將新列表進行返轉
temp_li.reverse(
)return temp_li
模板繼承是為了重用模板中的公共內容。一般web開發中,繼承主要使用在**的頂部選單、底部。這些內容可以定義在父模板中,子模板直接繼承,而不需要重複書寫。
頂部選單
底部
需要填充的內容
Jinja 2模板引擎
flask 提供了jiaja 2模板引擎渲染模板,下面逐步介紹其模板渲染機制。index.html lang en charset utf 8 這是首頁中文字 title 這是首頁中文字 h1 head body html user.html lang en charset utf 8 這是使用者中...
Jinja2模板引擎
檢視函式的主要作用是生成請求的響應,這是最簡單的請求。實際上,檢視函式有兩個作用 處理業務邏輯和返回響應內容。在大型應用中,把業務邏輯和表現內容放在一起,會增加 的複雜度和維護成本。本節學到的模板,它的作用即是承擔檢視函式的另乙個作用,即返回響應內容。使用模板的好處 兩個概念 渲染模版函式 使用 變...
Jinja 2 模板引擎 2
說明 巨集和python中的函式類似,可以傳遞引數。但是不能有返回值,可以把經常用到的 片段放在巨集中,然後把一些不固定的值抽出來作為乙個變數。巨集的定義 巨集的呼叫 示列 1.建立乙個index 1。html檔案 使用者名稱 密碼 登入 2。建立乙個 py檔案 from flask import ...