jinja2模板中文文件
表示式}
用於裝載字串、變數、函式呼叫等語句
用於裝載控制語句,比如if判斷、for迴圈等注釋}
用於裝載乙個注釋,模板渲染的時候會被忽略掉
在模板中,我們可以使用「.」獲取變數的屬性
user =
如果user為傳入模板中的字典變數,則我們可通過"."獲取它的鍵值。
eg:user.username
user.username等價於user[『username』]
我們可以用set標籤在模板中定義變數
使用endset宣告結束
過濾器(filter)是一些可以用來修改和過濾特殊變數值的函式。eg: 對乙個movies列表使用length過濾器獲取其長度過濾器和變數用乙個豎線「|」(管道符號)隔開,需要引數的過濾器可以像函式一樣使用括號傳遞
movies|length
下面是jinja2常用的內建過濾器過濾器
說明default(value,default_value,boolean=false)
設定預設值,預設值作為引數傳入,別名為d
escap(s)
轉義html文字,別名為e
first(seq)
返回序列的第乙個元素
last(seq)
返回列表的最後乙個元素
length(object)
返回變數的長度
safe(value)
將變數標記為安全,避免轉義
wordcount(s)
計算單詞數量
過濾器函式的第乙個引數表示被過濾的變數值(value)或字串(s),即豎線符號左側的值,其他引數可以使用括號傳入
測試器主要用來判斷乙個值是否滿足某種變數型別,返回布林值(true or false)的特殊函式語法為:**if…is…
jinja2常用內建測試器測試器
說明callable(object)
判斷物件是否可呼叫
defined(value)
判斷變數是否已定義
none(value)
判斷變數是否為none
number(value)
判斷變數是否為數字
string(value)
判斷變數是否為字串
sequence(value)
判斷變數是否為序列,比如字串、列表、元組
iterable(value)
判斷變數是否可迭代
判斷變數是否是匹配物件,比如字典
smeas(value,other)
判斷變數與other是否指向相同的記憶體位址
判斷foo和bar所以指向的記憶體位址是否相同
在jinja2中,語句使用標識
在語句結束的地方,必須新增結束標籤
} - }
不可使用break和continue控制迴圈的執行
i am qux.
we are qux.
就像從python模組中匯入函式一樣,我們可以使用import匯入巨集
ps:預設情況下,使用include匯入乙個區域性模板會傳遞上下文到區域性模板中,但使用import卻不會
模板繼承允許我們構建乙個包含站點共同元素的基本模板"骨架",並定義子模版可以覆蓋的塊基模板 base.html
** 在基模板中定義的塊(block),可以讓子模版通過定義同名的塊來執行繼承操作 **
塊的開始和結束分別使用block和endblock標籤,不同的塊允許巢狀
以下示例**中使用head、title、styles、content、footer和scripts劃分了不同的標籤塊
>
>
charset
="utf-8"
>
>
template - helloflasktitle
>
head
>
>
>
>
href
="}"
>
homea
>
li>
ul>
>
main
>
>
footer
>
body
>
html
>
子模版 index.html
>
templateh1
>
>
>
href
="}"
>
watchlista
>
li>
>
filter: }li
>
>
global: }li
>
>
test: i am baz.li
>
>
macro: }li
>
ul>
*** 如需要向基模板中最佳內容,可以使用jinja2的super()函式 ***
如向基模板的styles塊追加一行樣式
}
參考: Jinja2語法自動補全配置
步驟一 為了避免和原先其它配置相混亂,方便以後的新增及檢視,我們需要建立自己的分組。在file settings editor下找到live templates,點選右側 選項,接著選擇 2.templates group.選項新建乙個分組,並將其命名為 jinja2 完成後左側會顯示名為 jinj...
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基本總結
裝載乙個變數,模板渲染的時候,會使用傳進來的同名引數這個變數代表的值替換掉。裝載乙個控制語句。裝載乙個注釋,模板渲染的時候會忽視這中間的值。1 在模板中新增變數,可以使用 set 語句。之後就可以在頁面檔案中使用name這個變數了。在解釋性語言中,變數的型別時執行時確定的,因此,這裡的變數可以賦任何...