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