前幾節,我們簡要的討論了一下在flask開發中的環境搭建、模塊分離等具體的開發技術,今天我們來看看flask架構中所使用的默認模板引擎jinja2。
jinja2簡介
Jinja2是Python下一個被廣泛應用的模版引擎,他的設計思想來源於Django的模板引擎,並擴展了其語法和一系列強大的功能。其中最顯著的一個是增加了沙箱執行功能和可選的自動轉義功能,這對大多應用的安全性來說是非常重要的。
jinja2的基本用法
基本語法
jiaja2中的基本語法有三種:第一種,用於變量取值使用“{{ }}”。第二種,用於進行控制使用的是“{% %}”。第三種就是註釋“{# #}”
過濾器
變量可以通過“過濾器”進行修改,過濾器可以理解為是jinja2裡面的內置函數和字符串處理函數。常用的過濾器有:
- safe: 渲染時值不轉義
- capitialize: 把值的首字母轉換成大寫,其他子母轉換為小寫
- lower: 把值轉換成小寫形式
- upper: 把值轉換成大寫形式
- title: 把值中每個單詞的首字母都轉換成大寫
- trim: 把值的首尾空格去掉
- striptags: 渲染之前把值中所有的HTML標籤都刪掉
- join: 拼接多個值為字符串
- replace: 替換字符串的值
- round: 默認對數字進行四捨五入,也可以用參數進行控制
- int: 把值轉換成整型
那麼如何使用這些過濾器呢? 只需要在變量後面使用管道(|)分割,多個過濾器可以鏈式調用,前一個過濾器的輸出會作為後一個過濾器的輸入。
for循環
jinja2中的for循環用於迭代Python的數據類型,包括列表,元組和字典。在jinja2中不存在while循環。
- 迭代列表
- 迭代字典
宏
宏類似於Python中的函數,我們可以通過宏來定義自己的功能,還可以進行參數傳遞,就像Python中的函數一樣。在宏中定義一個宏的關鍵字是macro,後面跟其 宏的名稱和參數等:
閱讀更多 熬心悟道 的文章