是否有推荐的方法来按程序构建 html 报告

Is there a recommended way to procedurally build up an html report

我正在寻求有关如何最好地将大量程序输出转化为 HTML 报告的建议。我现在主要做的是手工构建报告。我正在使用的 python 程序非常大,并且在整个过程中都有大量的日志记录。我正在我的报告中找到我想要的日志记录部分,将其标记为 HTML 并将其附加到我的最终结果中。

我正在寻找一个 HTML 构建 Python 模块,希望它比手动格式化一堆字符串更优雅。

这个 SO 问题似乎表明 HTML 构建模块不如较新的模板模块理想: python html generator

我对 Jinja 和 Django 模板有点熟悉,但我不确定这对我的情况有何影响。

感谢您的任何建议。

有多种方法可以从 Python 生成 HTML。

最干净的选择是使用 模板引擎:

  • 创建一个模板 HTML 带有可变数据占位符的报告
  • 使用提供此变量数据的上下文渲染模板

Python 中有多个独立的(意味着 Django 不是一个选项)模板引擎:

示例(使用 mako):

  • 创建一个 index.tpl 模板文件:

    <html>
    <head>
        <title>${title}</title>
    </head>
    <body>
        <h1>${header}</h1>
    </body>
    </html>
    
  • 在 python 代码中,创建一个 Template() 实例并渲染模板:

    >>> from mako.template import Template
    >>> template = Template(filename='index.tpl')
    >>> print template.render(title='My Title', header='My Header')
    <html>
    <head>
        <title>My Title</title>
    </head>
    <body>
        <h1>My Header</h1>
    </body>
    </html>