W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Flask 在模板引擎上做了決定: Jinja2 。為什么 Flask 沒有一個即插的模板引擎 接口?顯然,你可以使用一個不同的模板引擎,但是 Flask 仍然會為你配置 Jinja2 。雖然 Jinja2 總是 配置的限制可能會消失,但綁定一個模板引擎并使用 的決策不會。
模板引擎與編程語言類似,每個模板引擎都有特定的理解事物工作的方式。表面上, 它們以相同方式工作:你給引擎一個變量的集合讓它為模板求值,并返回一個字符 串。
然而,關(guān)于相同點的論述結(jié)束了。例如 Jinja2 有一個全面的過濾器系統(tǒng),一個可靠 的模板繼承方式,可以從模板內(nèi)和 Python 代碼內(nèi)使用復用塊(宏)的支持,對所有 操作使用 Unicode,支持迭代模板渲染,可配置的語法等等。其它的引擎,一個類似 Genshi——基于 XML 流求值的引擎,模板繼承要考慮 XPath 可用性等等。而 Mako 像 對待 Python 模塊一樣處理模板。
當把一個模板引擎跟一個應(yīng)用或框架聯(lián)系到一起,就不只是渲染模板了。比如, Flask 使用 Jinja2 全面的自動轉(zhuǎn)義支持。同樣,也提供了從 Jinja2 模板中 訪問宏的途徑。
不去掉模板引擎的獨特特性的模板抽象層是一門對自身的科學,也是像 Flask 的微框架的巨大事業(yè)。
此外,擴展也可以簡易地依賴于一個現(xiàn)有的模板語言。你可以簡單地使用你自己的 模板語言,而擴展會始終依賴于 Jinja 本身。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: