2009-10-10 92 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

这是一组可以被用来定义标签和属性的基类。因此标签类具有属性和子元素。孩子们本身就是具有属性和孩子等等的标签类。你也可以设置以你的根类开始的参数,并处理各个分支。

这将允许您定义的所有这样你希望能够创建定制类的标签类和实现任何标签或属性你想要的。

刚开始这个,所以如果有人想测试:)