2

我正在寻找一种 python 解决方案来创建可以通过电子邮件发送的静态 .html,可以附加或嵌入在电子邮件中(如果需要更多工作,请忽略后一个选项)。我对 .html 的布局没有要求。这里的重点是确定生成离线 .html 的痛苦较少的解决方案。

一个潜在的解决方案可能是按照以下伪代码的行。

from some_unknown_pkg import StaticHTML

# Initialise instance
newsletter = StaticHTML()

# Append charts, tables and text to blank newsletter.
newsletter.append(text_here)
newsletter.append(interactive_chart_generated_with_plotly)
newsletter.append(more_text_here)
newsletter.append(a_png_file_loaded_from_local_pc)



# Save newsletter to .html, ready to be sent out.
newsletter.save_to_html('newsletter.html')

哪里'newsletter.html'可以在任何浏览器中打开。只是为了提供更多背景信息,这个 .html 应该发送给我公司内部的一些选定人员,并且包含敏感数据。我正在使用 plotly 生成要插入到 .html 中的交互式图表。

4

3 回答 3

3

可能的解决方案在这里

似乎该答案中的包正是您想要的。文件:http ://www.yattag.org/

另一个漂亮的包在这里

于 2018-01-02T16:47:35.987 回答
3

通过导入sys模块启动您的python模块并将标准输出重定向到newsletter.html

import sys
sys.stdout = open('newsletter.html','w')

这会将生成的任何输出重定向到 html 文件。现在,只需使用printpython 中的命令将 html 标签传输到文件。例如尝试:

print "<html>"
print "<p> This is my NewsLetter </p>"
print "</html>"`

此代码段将创建一个基本的 HTML 文件。现在,您可以在任何浏览器中打开此文件。对于发送电子邮件,您可以使用pythonemailsmtplib模块。

于 2018-01-02T17:48:31.367 回答
1

Dominate 包看起来提供了一种简单直观的方式来创建 HTML 页面。https://www.yattag.org/

于 2019-08-18T22:18:04.317 回答