jinja2介紹
jinja2是Flask作者開發的一個模板系統,起初是仿django模板的一個模板引擎,為Flask提供模板支持,由於其靈活,快速和安全等優點被廣泛使用。
jinja2的優點
jinja2之所以被廣泛使用是因為它具有以下優點:
1.相對於Template,jinja2更加靈活,它提供了控制結構,表達式和繼承等。
- 相對於Mako,jinja2僅有控制結構,不允許在模板中編寫太多的業務邏輯。
- 相對於Django模板,jinja2性能更好。
- Jinja2模板的可讀性很棒。
安裝jinja2
由於jinja2屬於第三方模塊,首先需要對其進行安裝
`pip3 install jinja2`
測試模板是否安裝成功
`python ``-``c ``"import jinja2"` `# 沒有報錯就表示安裝成功``# 必須用雙引號"`
jinja2語法
作為一個模板系統,它還提供了特殊的語法,我們按照它支持的語法進行編寫之后,就能使用jinja2模塊進行渲染。
基本語法
在jinja2中,存在三種語法:
- 控制結構 {% %}
- 變量取值 {{ }}
- 注釋
jinja2變量
jinja2模板中使用 {{ }} 語法表示一個變量,它是一種特殊的占位符。當利用jinja2進行渲染的時候,它會把這些特殊的占位符進行填充/替換,jinja2支持python中所有的Python數據類型比如列表、字段、對象等。
this is a dicectory:{{ mydict['key'] }}
this is a list:{{ mylist[3] }}
this is a object:{{ myobject.something() }}
jinja2中的過濾器
變量可以通過“過濾器”進行修改,過濾器可以理解為是jinja2里面的內置函數和字符串處理函數。
常用的過濾器有:
| 過濾器名稱 | 說明 |
|---|---|
| safe | 渲染時值不轉義 |
| capitialize | 把值的首字母轉換成大寫,其他子母轉換為小寫 |
| lower | 把值轉換成小寫形式 |
| upper | 把值轉換成大寫形式 |
| title | 把值中每個單詞的首字母都轉換成大寫 |
| trim | 把值的首尾空格去掉 |
| striptags | 渲染之前把值中所有的HTML標簽都刪掉 |
| join | 拼接多個值為字符串 |
| replace | 替換字符串的值 |
| round | 默認對數字進行四舍五入,也可以用參數進行控制 |
| int | 把值轉換成整型 |
