在python中的字符串内将值传递给html
我有以下代码:在python中的字符串内将值传递给html,python,html,python-3.x,string,smtp,Python,Html,Python 3.x,String,Smtp,我有以下代码: def smtp_mailer(name,email): html = """\ <!DOCTYPE html> <html> <head> <title>Page Title</title> <style type="text/css"> .h1, .p, .bodycopy {color: #153643; font-family: sans-serif;} .h1 {font-size:
def smtp_mailer(name,email):
html = """\
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style type="text/css">
.h1, .p, .bodycopy {color: #153643; font-family: sans-serif;}
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
</style>
</head>
<body>
<h1>This is a {name}</h1>
<p>This is a {email).</p>
</body>
</html>
"""
part2 = MIMEText(html, 'html')
msg.attach(part2)
def smtp_邮箱(姓名、电子邮件):
html=”“”\
页面标题
.h1、.p、.bodycopy{color:#153643;字体系列:无衬线;}
.h1{字体大小:33px;行高:38px;字体重量:粗体;}
这是一个{name}
这是一封{电子邮件)
"""
part2=MIMEText(html,'html')
附加信息(第2部分)
当我发送SMTP邮件时,我无法在HTML中的h1标记处传递名称值,在p标记处传递电子邮件值。请帮助我。
谢谢。您可以这样使用:
def smtp_邮箱(姓名、电子邮件):
html=f“”\
页面标题
这是一个{name}
这是一封{电子邮件}
"""
打印(html)
smtp_邮件(“测试”test@test.test")
返回
页面标题
这是一个测试
这是一个test@test.test.
您可以这样使用:
def smtp_邮箱(姓名、电子邮件):
html=f“”\
页面标题
这是一个{name}
这是一封{电子邮件}
"""
打印(html)
smtp_邮件(“测试”test@test.test")
返回
页面标题
这是一个测试
这是一个test@test.test.
在初始注释之后,似乎要问的主要问题是字符串包含一些大括号(即,{}
字符)作为
元素的一部分保留在字符串中的文本,但也可以作为格式说明符的一部分进行替换
鉴于此字符串是您自己的代码,您可以将其修改为预期的值,而不是外部提供的值,在外部提供的值中,您必须找到解决此不一致性的不可避免的混乱方法,因此适当的解决方案是将打算作为文字的{
和}
更改为{{
和}
,以便在调用format
方法后,它们将作为单个大括号输出
执行此操作后(并更正{email)
末尾的错误字符),可以应用格式
方法:
比如说,
html = """\
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style type="text/css">
.h1, .p, .bodycopy {{color: #153643; font-family: sans-serif;}}
.h1 {{font-size: 33px; line-height: 38px; font-weight: bold;}}
</style>
</head>
<body>
<h1>This is a {name}</h1>
<p>This is a {email}.</p>
</body>
</html>
""".format(name="John", email="test@example.com")
print(html)
html=”“”\
页面标题
.h1、.p、.bodycopy{{颜色:#153643;字体系列:无衬线;}
.h1{{字体大小:33px;行高:38px;字体重量:粗体;}
这是一个{name}
这是一封{电子邮件}
“”。格式(name=“John”,电子邮件=”test@example.com")
打印(html)
给出:
...
.h1, .p, .bodycopy {color: #153643; font-family: sans-serif;}
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
...
<h1>This is a John</h1>
<p>This is a test@example.com.</p>
...
。。。
.h1、.p、.bodycopy{color:#153643;字体系列:无衬线;}
.h1{字体大小:33px;行高:38px;字体重量:粗体;}
...
这是约翰
这是一个test@example.com.
...
正如其他人所提到的(在Python 3中)您也可以使用
f
字符串表示法,而不是显式调用format
方法,前提是在名为name
和email
的变量中已经有要替换的值。在任何情况下,您仍然需要在格式化之前将文本大括号加倍。注释,似乎要问的主要问题是,字符串包含一些大括号(即,{}
字符),这些大括号打算作为
元素的一部分保留在字符串中,但也有一些大括号打算作为格式说明符的一部分替换
鉴于此字符串是您自己的代码,您可以将其修改为预期的值,而不是外部提供的值,在外部提供的值中,您必须找到解决此不一致性的不可避免的混乱方法,因此适当的解决方案是将打算作为文字的{
和}
更改为{{
和}
,以便在调用format
方法后,它们将作为单个大括号输出
执行此操作后(并更正{email)
末尾的错误字符),可以应用格式
方法:
比如说,
html = """\
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style type="text/css">
.h1, .p, .bodycopy {{color: #153643; font-family: sans-serif;}}
.h1 {{font-size: 33px; line-height: 38px; font-weight: bold;}}
</style>
</head>
<body>
<h1>This is a {name}</h1>
<p>This is a {email}.</p>
</body>
</html>
""".format(name="John", email="test@example.com")
print(html)
html=”“”\
页面标题
.h1、.p、.bodycopy{{颜色:#153643;字体系列:无衬线;}
.h1{{字体大小:33px;行高:38px;字体重量:粗体;}
这是一个{name}
这是一封{电子邮件}
“”。格式(name=“John”,电子邮件=”test@example.com")
打印(html)
给出:
...
.h1, .p, .bodycopy {color: #153643; font-family: sans-serif;}
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
...
<h1>This is a John</h1>
<p>This is a test@example.com.</p>
...
。。。
.h1、.p、.bodycopy{color:#153643;字体系列:无衬线;}
.h1{字体大小:33px;行高:38px;字体重量:粗体;}
...
这是约翰
这是一个test@example.com.
...
正如其他人所提到的(在Python 3中)如果名为
name
和email
的变量中已有要替换的值,则也可以使用f
字符串表示法,而不是显式调用format
方法。在任何情况下,在格式化之前仍需要将文本大括号加倍。尝试替换值使用html.format(name=..,email=..)
您可能在开始时忘记了f来插值“text{name}”,但我的html中有这些内联CSS,它也要求使用格式“”。标题{宽度:100%;背景颜色:#3B5998;高度:35px;页边顶部:0;}。样式1{页边右侧:38px;}.style2{宽度:100%;背景色:3B5998;高度:35px;}''@alaniwi@anuragkumaranu好的,我现在理解了这个问题。请查看我的答案。尝试使用html.format(name=..,email=..)
替换值。您可能在开始时忘记了使用f来插值“text{name}”“但我的HTML中有这些内联CSS,它也要求使用格式”“。标题{宽度:100%;背景色:#3B5998;高度:35px;页边顶部:0;}。样式1{页边右侧:38px;}。样式2{宽度:100%;背景色:#3B5998;高度:35px;}” ''' @alaniwi@anuragkumaranu好的,我现在明白这个问题了。请看我的答案。但是我的HTML中有这些内联CSS,它也要求使用格式“”