2009-10-10 94 views
17

我正在尋找一個輕鬆實現的Python生成器的Python。我發現這一個python html生成器

http://www.decalage.info/python/html 

但是沒有辦法爲表添加css元素(id,class)。

THX

回答

7

如果你想要程序化生成而不是模板化,Karrigell的HTMLTags模塊是一種可能性;它可以包括例如在class屬性(這將是Python中的保留字)由uppercasing其初始,即引述文件的網址我剛給的伎倆:

屬性具有相同的名稱作爲 Python的關鍵字(類,類型)必須 大寫:

print DIV('bar', Class="title") ==> <DIV class="title">bar</DIV> 
5

HTML生成通常與可用於Python無限量的HTML模板語言中的一種來完成。我個人喜歡Templess,但Genshi可能是最受歡迎的。它們的數量是無限的,有一個list這很可能是不完整的。

否則,您可能想要使用lxml,您可以在其中以更具編程的XML-ISH方式生成它。雖然我很難看到好處。

+0

另外:Genshi是Trac使用的模板引擎。 – retracile 2009-10-10 20:50:43

5

還有羅賓·弗里德里希,這是很難找到,但仍然可用here(日期爲2001年古老的HTMLgen,但HTML從那時起沒有;-)太大的改變。還有xist。正如Lennart指出的那樣,現在的HTML生成當然更好地使用模板系統完成,例如JinjaMako

+0

時下?自從至少DTML,1997年以來,Python模板已經出現。:) ZPT自2001年以來更好。:) [只是挑剔] – 2009-10-10 18:00:15

2

實際上,您可以將任何屬性(如id和class)添加到HTML.py(http://www.decalage.info/python/html)中的對象。

attribs是Table,TableRow和TableCell類的可選參數。這是一個你想設置的附加屬性的字典。例如,下列代碼將ID和類的表:

import HTML 
table_data = [ 
     ['Last name', 'First name', 'Age'], 
     ['Smith',  'John',   30], 
     ['Carpenter', 'Jack',   47], 
     ['Johnson',  'Paul',   62], 
    ] 
htmlcode = HTML.table(table_data, 
    attribs={'id':'table1', 'class':'myclass'}) 
print htmlcode 

相同的參數可以通過tablerow和TableCell的對象可以用來格式行和細胞。它還不存在列,但如果需要,應該很容易實現。

0

您可能會對一些Python HAML實現感興趣。 HAML就像HTML速記,只需要幾分鐘的時間來學習。還有一個名爲SASS的CSS版本。關於Python和HAML多一點

http://haml.hamptoncatlin.com/

Is there a HAML implementation for use with Python and Django」 會談。

我在Ruby編程時儘可能地使用HAML。而且,作爲一個註腳,還有的也一直是Perl的一些工作得到模塊與漂亮的MVC Mojolicious工作:

http://metacpan.org/pod/Text::Haml

4

這是一個超簡單的HTML生成我已經寫了。我使用它構建時間來生成HTML。如果一個正在生成的HTML頁面運行時則有可更好的選擇

這裏是鏈接

http://pypi.python.org/pypi/sphc

而且一個簡單的例子

>> import sphw 
>> tf = sphw.TagFactory() 
>>> div = tf.DIV("Some Text here.", Class='content', id='foo') 
>>> print(div) 

<DIV Class="content", id="foo">Some Text here.</DIV> 
3

Dominate是一個HTML生成庫讓您輕鬆創建標籤。在主宰,蟒蛇保留字用下劃線前綴,所以它看起來像這樣:

from dominate.tags import * 
t = div(table(_id="the_table"), _class="tbl") 
print(t) 


<div class="tbl"> 
    <table id="the_table"></table> 
</div> 

免責聲明:我的作者主導

3

好吧,這裏是另一個HTML生成,或者我更願意認爲它是一個編譯器。

https://pypi.python.org/pypi/python-html-compiler

這是一組可以被用來定義標籤和屬性的基類。因此標籤類具有屬性和子元素。孩子們本身就是具有屬性和孩子等等的標籤類。你也可以設置以你的根類開始的參數,並處理各個分支。

這將允許您定義的所有這樣你希望能夠創建定製類的標籤類和實現任何標籤或屬性你想要的。

剛開始這個,所以如果有人想測試:)