You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python多函数运行结果导出到HTML报告文件

方案1:原生Python无额外依赖实现(适合中小型场景)

你可以先在HTML模板里定义标准化的占位符,再用字典统一管理所有需要插入的变量,批量替换,避免零散的format调用混乱,适配多变量的场景:

def function(n):
    result = n + 5
    return result

def main():
    n = int(input('n: '))
    result = function(n)
    
    # 统一管理所有需要注入HTML的变量,新增变量直接在此处追加即可
    template_vars = {
        "{{result}}": str(result),
        "{{input_n}}": str(n)
    }

    # HTML模板用统一格式的占位符标注插入位置
    html_template = """
    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>First Head</h1>
    <p>输入参数:{{input_n}}</p>
    <p>计算结果:---> {{result}} <--- </p>
    
    </body>
    </html>
    """
    
    # 批量替换所有变量
    for placeholder, value in template_vars.items():
        html_template = html_template.replace(placeholder, value)

    with open('result.html', 'w', encoding='utf-8') as report:
        report.write(html_template)

if __name__ == '__main__':
    main()
  • 无额外依赖,变量统一维护,不会出现format参数顺序错乱的问题
  • 插入逻辑简单可控,适合不需要复杂渲染逻辑的场景

方案2:Jinja2模板引擎(适配大型项目的工业级方案)

大型项目HTML结构复杂、变量多的情况下,用专门的模板引擎是最优解,支持变量注入、条件判断、循环渲染、模板继承等功能,完全满足多函数结果同步的需求:

  1. 安装依赖:pip install jinja2
  2. 单独编写HTML模板文件report_template.html(和Python代码同目录),实现代码和视图完全分离:
<!DOCTYPE html>
<html>
<body>

<h1>First Head</h1>
<p>输入参数:{{input_n}}</p>
<p>计算结果:---> {{result}} <--- </p>
<!-- 支持复杂渲染逻辑,比如循环遍历列表:
{% for item in log_list %}
<p>运行日志:{{item}}</p>
{% endfor %}
-->

</body>
</html>
  1. Python代码逻辑:
from jinja2 import Environment, FileSystemLoader

def function(n):
    result = n + 5
    return result

def main():
    n = int(input('n: '))
    result = function(n)
    
    # 加载模板所在目录
    env = Environment(loader=FileSystemLoader('./'))
    template = env.get_template('report_template.html')
    
    # 所有函数运行结果统一传入即可,新增变量直接追加参数
    html_content = template.render(
        input_n = n,
        result = result
        # log_list = get_run_log() 其他函数返回结果直接在此处追加
    )

    with open('result.html', 'w', encoding='utf-8') as report:
        report.write(html_content)

if __name__ == '__main__':
    main()
  • 代码和HTML完全分离,不会出现混写的维护问题
  • 支持复杂的渲染逻辑,完全适配大型项目的复杂报告需求
  • 变量维护清晰,新增输出项只需要修改模板和render参数,不影响原有逻辑

内容的提问来源于stack exchange,提问作者KNapieraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:45:09