Python中的HTML电子邮件Python变量(Python Variable in an HTM

2019-08-02 06:47发布

如何插入变量插入到HTML电子邮件,我使用python发送? 我尝试发送的变量code 。 下面是我到目前为止所。

text = "We Says Thanks!"
html = """\
<html>
  <head></head>
  <body>
    <p>Thank you for being a loyal customer.<br>
       Here is your unique code to unlock exclusive content:<br>
       <br><br><h1><% print code %></h1><br>
       <img src="http://domain.com/footer.jpg">
    </p>
  </body>
</html>
"""

Answer 1:

使用"formatstring".format

code = "We Says Thanks!"
html = """\
<html>
  <head></head>
  <body>
    <p>Thank you for being a loyal customer.<br>
       Here is your unique code to unlock exclusive content:<br>
       <br><br><h1>{code}</h1><br>
       <img src="http://domain.com/footer.jpg">
    </p>
  </body>
</html>
""".format(code=code)

如果你发现自己代入了大量的变量,你可以使用

.format(**locals())


Answer 2:

另一种方法是使用模板 :

>>> from string import Template
>>> html = '''\
<html>
  <head></head>
  <body>
    <p>Thank you for being a loyal customer.<br>
       Here is your unique code to unlock exclusive content:<br>
       <br><br><h1>$code</h1><br>
       <img src="http://domain.com/footer.jpg">
    </p>
  </body>
</html>
'''
>>> s = Template(html).safe_substitute(code="We Says Thanks!")
>>> print(s)
<html>
  <head></head>
  <body>
    <p>Thank you for being a loyal customer.<br>
       Here is your unique code to unlock exclusive content:<br>
       <br><br><h1>We Says Thanks!</h1><br>
       <img src="http://domain.com/footer.jpg">
    </p>
  </body>
</html>

请注意,我用safe_substitute ,而不是substitute ,因为如果有一个占位符,这是不提供的字典中, substitute将提高ValueError: Invalid placeholder in string 。 同样的问题是string formatting



Answer 3:

使用蟒蛇字符串操作: http://docs.python.org/2/library/stdtypes.html#string-formatting

通常%运算符被用来把一个变量为一个字符串,%I为整数,%s表示字符串和%F为浮点数,NB:也有另一种格式类型(.format),其也与上述链路所描述的,它允许你在一个字典或列表稍微更优雅比我在下面,这可能是你应该从长远来看,走什么作为%操作变得混乱,如果你有你想要投入到一个字符串100个变量传递,虽然使用类型的字典(我的最后一个例子)有点否定了这一点。

code_str = "super duper heading"
html = "<h1>%s</h1>" % code_str
# <h1>super duper heading</h1>
code_nr = 42
html = "<h1>%i</h1>" % code_nr
# <h1>42</h1>

html = "<h1>%s %i</h1>" % (code_str, code_nr)
# <h1>super duper heading 42</h1>

html = "%(my_str)s %(my_nr)d" %  {"my_str": code_str, "my_nr": code_nr}
# <h1>super duper heading 42</h1>

这是很基本的,只能用原始类型的工作,如果你想能够存储类型的字典,列表和可能的对象,我建议你使用cobvert他们jsons http://docs.python.org/2/library/json.html和https://stackoverflow.com/questions/4759634/python-json-tutorial是灵感的良好来源

希望这可以帮助



文章来源: Python Variable in an HTML email in Python