16

Pythonで送信しているHTMLメールに変数を挿入するにはどうすればよいですか? 送信しようとしている変数は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>
"""
4

3 に答える 3

41

使用"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())
于 2012-11-03T10:23:38.647 に答える
16

もう 1 つの方法は、Templatesを使用することです。

>>> 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, notを使用したことに注意してください。にも同じ問題があります。substitutesubstituteValueError: Invalid placeholder in stringstring formatting

于 2012-11-03T10:28:58.270 に答える