我正在寻找一个易于实现的Python HTML生成器。我发现HTML.py,但是没有办法为表格添加CSS元素(id、class)。
Dominate 是一个 HTML 生成库,可以让您轻松创建标签。在 dominate 中,Python 保留字前缀带有下划线,因此看起来像这样:
from dominate.tags import *
t = div(table(_id="the_table"), _class="tbl")
print(t)
<div class="tbl">
<table id="the_table"></table>
</div>
如果你想要通过编程而非模板生成HTML,则Karrigell的HTMLTags模块是一种可能的选择;它可以包含例如class
属性(在Python中这将是一个保留字),技巧是将其首字母大写,即引用我刚给出的文档URL:
与Python关键字相同名称的属性(例如class、type)必须大写:
print DIV('bar', Class="title") ==> <DIV class="title">bar</DIV>
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>
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对象,以格式化行和单元格。目前尚不存在针对列的参数,但如果需要,应该很容易实现。
好的,这是另一个HTML生成器,或者我更喜欢把它看作编译器。
https://pypi.python.org/pypi/python-html-compiler
这是一组基础类,可用于定义标签和属性。因此,标签类具有属性和子元素。子元素本身是具有属性和子元素的标签类,以此类推。您还可以设置从根类开始并向上工作各个分支的参数。你可能会对一些 Python HAML 实现感兴趣。HAML 就像 HTML 的速记版,只需要几分钟学习。也有一个叫做 SASS 的 CSS 版本。
http://haml.hamptoncatlin.com/
"Python和Django是否有适用的HAML实现"讨论了Python和HAML的相关信息。
在编写Ruby代码时,我尽可能地使用HAML。另外,作为脚注,还有一些关于Perl的模块正在进行开发,可以与优秀的MVC框架Mojolicious配合使用: