Jinja2是基于Python的模板引擎,功能比較類似于PHP的smarty,J2ee的Freemarker和velocity。它能完全支持unicode,并具有集成的沙箱執行環境,應用廣泛。jinja2使用BSD授權。
特性
沙箱執行模式,模板的每個部分都在引擎的監督之下執行,模板將會被明確地標記在白名單或黑名單內,這樣對于那些不信任的模板也可以執行。
強大的自動HTML轉義系統,可以有效地阻止跨站腳本攻擊。
模板繼承機制,此機制可以使得所有的模板都具有相似一致的布局,也方便了開發人員對模板的修改和管理。
高效的執行效率,Jinja2引擎在模板第一次加載時就把源碼轉換成Python字節碼,加快模板執行時間。
可選的預編譯模式。
調試系統融合了標準的Python的TrackBack系統,使得模板編譯和運行期間的錯誤能及時被發現和調試。
語法可配置,可以重新配置Jinja2使得它更好地適應LaTeX或ECMAScript的輸出。
模板設計人員幫助手冊,此手冊指導設計人員更好地使用Jinja2引擎的各種方法。
Jinja2模板引擎允許自定義標簽、過濾器(用于格式化或轉換值)、測試(用于評估條件)和全局變量。與Django模板引擎不同,Jinja允許模板設計者在對象上調用帶參數的函數。Jinja還配備了類似Unix管道的易于使用的過濾器系統。
使用用戶
Python框架
Flask使用jinja2作為框架的模板系統。
使用django等其他Python web框架也可以方便的集成jinja2模板系統。
一些網站
新增應用
Jinja2也被Ansible、Trac和Salt等工具使用。此外,它還用于創建SQL宏,例如用于與dbt一起使用。
參考資料 >