如何从python脚本将数据插入HTML?

时间:2016-07-01 00:19:31

标签: python html

我有一个html和python脚本。

我在python脚本中调用html并通过电子邮件发送它们。

这是我的代码:

# Build email message
   import time
   currentTime = time.ctime();
   reportmessage = urllib.urlopen(Report.reportHTMLPath + "reporturl.html").read()
   //Code to send e-mail 

HTML code:

<div>
 <b> Time is: <% currentTime %> 
</div>

但这似乎不起作用。

有人可以帮助我如何从python中将时间插入HTML吗?它不仅仅是时间,还有其他一些东西可以附加(href等)。

谢谢,

2 个答案:

答案 0 :(得分:1)

最简单且不安全的方式是使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

str.format

但这不是我建议的方式,我强烈建议您使用jinja2模板渲染引擎。

这是一个使用它的简单代码:

>>> import time
>>> currentTime = time.ctime()
>>> 
>>> currentTime
'Fri Jul  1 06:50:37 2016'
>>> s = '''
<div>
<b> Time is {}</b>
</div>'''.format(currentTime)
>>> 
>>> s
'\n<div>\n<b> Time is Fri Jul  1 06:50:37 2016</b>\n</div>'

因此,您需要在工作目录中创建一个名为>>> import jinja2 >>> import os >>> >>> template_dir = os.path.join(os.path.dirname(__file__), 'templates') >>> jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True) >>> def render_str(self, template, **params): t = jinja_env.get_template(template) return t.render(params) 的文件夹,该文件夹将包含您的模板,例如templates

CurrentTime.html

然后简单地说:

<div>
<b> Time is {{ currentTime }}</b>

答案 1 :(得分:1)

如果要插入大量数据,模板将是一个不错的选择。 如果您真的介意使用模板引擎,re将是一个轻量级的解决方案。

这是一个简单的例子:

>>> import re
>>> html = ''' 
... <div>
...   <b> Time is: <% currentTime %> </b>
... </div>
... ''' 
>>> result = re.sub(r'<% currentTime %>', '11:06', html)
>>> print(result)

<div>
<b> Time is: 11:06 </b>
</div>

>>>