您好,登錄后才能下訂單哦!
這篇“Python模板庫怎么使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python模板庫怎么使用”文章吧。
每個(gè)模板工具都不甚相同,你應(yīng)該閱讀文檔以了解其確切的用法。但讓我們創(chuàng)建一個(gè)假設(shè)的例子。假設(shè)我想創(chuàng)建一個(gè)簡短的頁面,列出我最近編寫的所有 Python 主題。就像這樣:
<html> <head> <title>My Python articles</title> </head> <body> <p>These are some of the things I have written about Python:</p> <ul> <li>Python GUIs</li> <li>Python IDEs</li> <li>Python web scrapers</li> </ul> </body></html>
當(dāng)它僅僅是這三個(gè)項(xiàng)目時(shí),維護(hù)它是很簡單的。但是當(dāng)我想添加第四個(gè)、第五個(gè)或第六十七個(gè)時(shí)會(huì)發(fā)生什么?我可以從包含我所有頁面列表的 CSV 文件或其他數(shù)據(jù)文件生成它,而不是手動(dòng)編碼此頁面嗎?我可以輕松地為我寫的每個(gè)主題創(chuàng)建重復(fù)內(nèi)容嗎?我可以以編程方式更改每個(gè)頁面上的文本標(biāo)題嗎?這就是模板引擎可以發(fā)揮作用的地方。
有許多不同的選擇,今天我將與你其中分享三個(gè),順序不分先后:Mako、 Jinja2 和 Genshi。
Mako 是以 MIT 許可證發(fā)布的 Python 模板工具,專為快速展現(xiàn)而設(shè)計(jì)的(與 Jinja2 不同)。Reddit 已經(jīng)使用 Mako 來展現(xiàn)他們的網(wǎng)頁,它同時(shí)也是 Pyramid 和 Pylons 等 web 框架的默認(rèn)模板語言。它相當(dāng)簡單且易于使用。你可以使用幾行代碼來設(shè)計(jì)模板;支持 Python 2.x 和 3.x,它是一個(gè)功能強(qiáng)大且功能豐富的工具,具有良好的文檔,這一點(diǎn)我認(rèn)為是必須的。其功能包括過濾器、繼承、可調(diào)用塊和內(nèi)置緩存系統(tǒng),這些系統(tǒng)可以被大型或復(fù)雜的 web 項(xiàng)目導(dǎo)入。
Jinja2 是另一個(gè)快速且功能全面的選項(xiàng),可用于 Python 2.x 和 3.x,遵循 BSD 許可證。Jinja2 從功能角度與 Mako 有很多重疊,因此對(duì)于新手來說,你在兩者之間的選擇可能會(huì)歸結(jié)為你喜歡的格式化風(fēng)格。Jinja2 還將模板編譯為字節(jié)碼,并具有 HTML 轉(zhuǎn)義、沙盒、模板繼承和模板沙盒部分的功能。其用戶包括 Mozilla、 SourceForge、 NPR、 Instagram 等,并且還具有強(qiáng)大的文檔。與 Mako 在模板內(nèi)部使用 Python 邏輯不同的是,Jinja2 使用自己的語法。
Genshi 是我會(huì)提到的第三個(gè)選擇。它是一個(gè) XML 工具,具有強(qiáng)大的模板組件,所以如果你使用的數(shù)據(jù)已經(jīng)是 XML 格式,或者你需要使用網(wǎng)頁以外的格式,Genshi 可能成為你的一個(gè)很好的解決方案。HTML 基本上是一種 XML(好吧,不是精確的,但這超出了本文的范圍,有點(diǎn)賣弄學(xué)問了),因此格式化它們非常相似。由于我通常使用的很多數(shù)據(jù)都是 XML 或其他類型的數(shù)據(jù),因此我非常喜歡使用我可以用于多種事物的工具。
發(fā)行版目前僅支持 Python 2.x,盡管 Python 3 支持存在于主干中,但我提醒你,它看起來并沒有得到有效的開發(fā)。Genshi 遵循 BSD 許可證提供。
因此,在上面的假設(shè)示例中,我不會(huì)每次寫新主題時(shí)都更新 HTML 文件,而是通過編程方式對(duì)其進(jìn)行更新。我可以創(chuàng)建一個(gè)模板,如下所示:
<html> <head> <title>My Python articles</title> </head> <body> <p>These are some of the things I have written about Python:</p> <ul> %for topic in topics: <li>${topic}</li> %endfor </ul> </body></html>
然后我可以使用我的模板庫來迭代每個(gè)主題,比如使用 Mako,像這樣:
from mako.template import Template mytemplate = Template(filename='template.txt')print(mytemplate.render(topics=("Python GUIs","Python IDEs","Python web scrapers")))
以上就是關(guān)于“Python模板庫怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。