gpt4 book ai didi

python - 如何使用 genshi.builder 以编程方式构建 HTML 文档?

转载 作者:搜寻专家 更新时间:2023-10-31 22:52:26 24 4
gpt4 key购买 nike

我最近发现了 genshi.builder 模块。它让我想起了 Divmod Nevow 的 Stan 模块。如何使用 genshi.builder.tag 构建具有特定文档类型的 HTML 文档?或者这甚至是一件好事?如果不是,正确的方法是什么?

最佳答案

不可能仅使用 genshi.builder.tag 构建整个页面——您需要对生成的流执行一些操作以插入文档类型。此外,生成的代码看起来会很可怕。推荐的使用 Genshi 的方法是使用一个单独的模板文件,从中生成一个流,然后将该流渲染为您想要的输出类型。

genshi.builder.tag 在您需要从 Python 中生成简单的标记时最有用,例如当您构建表单或对输出。

参见文档:

如果您真的想只使用 builder.tag 生成完整的文档,这个(完全未经测试的)代码可能是一个很好的起点:

from itertools import chain
from genshi.core import DOCTYPE, Stream
from genshi.output import DocType
from genshi.builder import tag as t

# Build the page using `genshi.builder.tag`
page = t.html (t.head (t.title ("Hello world!")), t.body (t.div ("Body text")))

# Convert the page element into a stream
stream = page.generate ()

# Chain the page stream with a stream containing only an HTML4 doctype declaration
stream = Stream (chain ([(DOCTYPE, DocType.get ('html4'), None)], stream))

# Convert the stream to text using the "html" renderer (could also be xml, xhtml, text, etc)
text = stream.render ('html')

生成的页面中将没有空格——它看起来很正常,但您将很难阅读源代码,因为它完全在一行中。实现适当的过滤器以添加空格作为练习留给读者。

关于python - 如何使用 genshi.builder 以编程方式构建 HTML 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/112564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com