HTML 5发电机
htmlgen的Python项目详细描述
从类生成HTML的库。
基本用法:
>>> from htmlgen import Division, Span >>> Division("This is ", Span("important!"), "!")
更详细的示例:
>>> span = Span("important") >>> span.add_css_classes("important") >>> div = Division() >>> div.id = "my-block" >>> div.append("This is ") >>> div.append(span) >>> div.append("!")
这样构造的树可以转换为字符串:
>>> str(div) '<div id="my-block">This is <span class="important">important</span>!</div>' >>> "<p>This is {}!</p>".format(span) '<p>This is <span class="important">important</span>!</p>'
或者,所有元素都可以用作迭代器,例如 它们来自wsgi回调:
>>> def application(env, start_response): ... start_response("200 OK", [("Content-Type", "text/html")]) ... return div
有两种不同的方式来呈现html元素的子元素。那棵树 上述施工方法主要适用于 孩子们。这种方法的缺点是整个树必须 建立在记忆中。另一种方法,最适合自定义子类 ,重写元素类的generate_children方法:
>>> class MyBlock(Division): ... def __init__(self): ... super(MyBlock, self).__init__() ... self.id = "my-block" ... def generate_children(self): ... yield "This is " ... span = Span("important") ... span.add_css_classes("important") ... yield span ... yield "!" >>> str(MyBlock()) '<div id="my-block">This is <span class="important">important</span>!</div>'