如何在Python代码中修改HTML代码?

如何在Python代码中修改HTML代码?,python,html,python-3.x,string-formatting,Python,Html,Python 3.x,String Formatting,我正在与Django合作创建一个网站。我有一个发送电子邮件的函数,该函数通过HTML文件中的按钮调用。 我想在python函数的HTML代码中插入一个python变量: import smtplib, ssl, getpass from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def mailfunctionejex(receiver_email, subject, mess

我正在与Django合作创建一个网站。我有一个发送电子邮件的函数,该函数通过HTML文件中的按钮调用。 我想在python函数的HTML代码中插入一个python变量:

import smtplib, ssl, getpass

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def mailfunctionejex(receiver_email, subject, message, passwordtest):
    port = 465
    smtp_server = 'smtp.gmail.com'
    sender_email = 'senderg@gmail.com'
    failcounter = 0

    #MIME parameters

    mailmessage = MIMEMultipart()
    mailmessage['Subject'] = subject
    mailmessage['From'] = sender_email
    mailmessage['To'] = receiver_email
    mailmessage['Bcc'] = receiver_email

    #Message content

    html = '''\
        Good morning, the user {sender_email} has send you a message: \n

        {message} #I would to insert in {} the variable sender_email and             #message 

        '''

    #Conversions
    htmlpart = MIMEText(html, 'html')

    mailmessage.attach(htmlpart)


.
.
.

这只是一个与任何其他字符串类似的字符串,因此应该这样做(我在字符串之前添加了一个f,以告诉Python它是一个格式字符串):

如果这不起作用,您可以使用旧方法:

html = 'Good morning, the user'+ sender_email+ 'has send you a message: \n'

        +message

如果f-string不是一个选项,我建议在进行
str
连接之前使用
str.format
,例如
“早上好,用户{}已经向您发送了一条消息:\n{}”。format(sender\u email,message)
或类似f-string的
“早上好,用户{sender\u email}已经向您发送了一条消息:\n{message message}”。format\u map(locals())
。字符串连接涉及许多临时字符串(这是一个Schlemiel-the-Painter算法),要求所有输入都已经是
str
(其中
str.format
将隐式字符串化),而且更难看(主观意见)。我很高兴它做到了!
html = 'Good morning, the user'+ sender_email+ 'has send you a message: \n'

        +message