flask實際操刀之jinja2模板渲染

前幾節,我們簡要的討論了一下在flask開發中的環境搭建、模塊分離等具體的開發技術,今天我們來看看flask架構中所使用的默認模板引擎jinja2。

flask實際操刀之jinja2模板渲染

jinja2簡介

Jinja2是Python下一個被廣泛應用的模版引擎,他的設計思想來源於Django的模板引擎,並擴展了其語法和一系列強大的功能。其中最顯著的一個是增加了沙箱執行功能和可選的自動轉義功能,這對大多應用的安全性來說是非常重要的。

jinja2的基本用法

基本語法

jiaja2中的基本語法有三種:第一種,用於變量取值使用“{{ }}”。第二種,用於進行控制使用的是“{% %}”。第三種就是註釋“{# #}”

過濾器

變量可以通過“過濾器”進行修改,過濾器可以理解為是jinja2裡面的內置函數和字符串處理函數。常用的過濾器有:

  • safe: 渲染時值不轉義
  • capitialize: 把值的首字母轉換成大寫,其他子母轉換為小寫
  • lower: 把值轉換成小寫形式
  • upper: 把值轉換成大寫形式
  • title: 把值中每個單詞的首字母都轉換成大寫
  • trim: 把值的首尾空格去掉
  • striptags: 渲染之前把值中所有的HTML標籤都刪掉
  • join: 拼接多個值為字符串
  • replace: 替換字符串的值
  • round: 默認對數字進行四捨五入,也可以用參數進行控制
  • int: 把值轉換成整型

那麼如何使用這些過濾器呢? 只需要在變量後面使用管道(|)分割,多個過濾器可以鏈式調用,前一個過濾器的輸出會作為後一個過濾器的輸入。

flask實際操刀之jinja2模板渲染

for循環

jinja2中的for循環用於迭代Python的數據類型,包括列表,元組和字典。在jinja2中不存在while循環。

  • 迭代列表
flask實際操刀之jinja2模板渲染

  • 迭代字典
flask實際操刀之jinja2模板渲染

宏類似於Python中的函數,我們可以通過宏來定義自己的功能,還可以進行參數傳遞,就像Python中的函數一樣。在宏中定義一個宏的關鍵字是macro,後面跟其 宏的名稱和參數等:

flask實際操刀之jinja2模板渲染


分享到:


相關文章: