实现抽象类的两种方式
方式一
abc Meta
abc <span style="color: #0000ff;">class BaseMessage(Metaclass=<span style="color: #000000;">ABCMeta):
@abstractmethod
</span><span style="color: #0000ff;">def</span><span style="color: #000000;"> send(self,subject,body,to,name):
</span><span style="color: #0000ff;">pass</span></pre>
方式二
NotImplementedError(方法)
邮件提醒
email.mime.text email.utils .base <span style="color: #0000ff;">class<span style="color: #000000;"> Email(BaseMessage):
<span style="color: #0000ff;">def <span style="color: #800080;">init<span style="color: #000000;">(self):
self.email = <span style="color: #800000;">"寄件人的邮箱地址<span style="color: #800000;">"<span style="color: #000000;">
self.user = <span style="color: #800000;">"寄件人姓名<span style="color: #800000;">"<span style="color: #000000;">
self.pwd = <span style="color: #800000;">'邮箱密码或SMTP授权码<span style="color: #800000;">'
<span style="color: #0000ff;">def <span style="color: #800080;">init<span style="color: #000000;">(self):
self.email = <span style="color: #800000;">"寄件人的邮箱地址<span style="color: #800000;">"<span style="color: #000000;">
self.user = <span style="color: #800000;">"寄件人姓名<span style="color: #800000;">"<span style="color: #000000;">
self.pwd = <span style="color: #800000;">'邮箱密码或SMTP授权码<span style="color: #800000;">'
<span style="color: #0000ff;">def</span><span style="color: #000000;"> send(self,name):
</span><span style="color: #800000;">'''</span><span style="color: #800000;">
:p<a href="/tag/ara/" target="_blank" class="keywords">ara</a>m subject: <a href="/tag/zhuti/" target="_blank" class="keywords">主题</a>
:p<a href="/tag/ara/" target="_blank" class="keywords">ara</a>m body: <a href="/tag/neirong/" target="_blank" class="keywords">内容</a>
:p<a href="/tag/ara/" target="_blank" class="keywords">ara</a>m to:接受者
:p<a href="/tag/ara/" target="_blank" class="keywords">ara</a>m name:接受者姓名
:return:
</span><span style="color: #800000;">'''</span><span style="color: #000000;">
msg </span>= MIMEText(body,<span style="color: #800000;">'</span><span style="color: #800000;">plain</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">utf-8</span><span style="color: #800000;">'</span>) <span style="color: #008000;">#</span><span style="color: #008000;"> 发送<a href="/tag/neirong/" target="_blank" class="keywords">内容</a></span>
msg[<span style="color: #800000;">'</span><span style="color: #800000;">From</span><span style="color: #800000;">'</span>] = formataddr([self.user,self.email]) <span style="color: #008000;">#</span><span style="color: #008000;"> 发件人</span>
msg[<span style="color: #800000;">'</span><span style="color: #800000;">To</span><span style="color: #800000;">'</span>] = formataddr([name,to]) <span style="color: #008000;">#</span><span style="color: #008000;"> 收件人</span>
msg[<span style="color: #800000;">'</span><span style="color: #800000;">Subject</span><span style="color: #800000;">'</span>] = subject <span style="color: #008000;">#</span><span style="color: #008000;"> <a href="/tag/zhuti/" target="_blank" class="keywords">主题</a></span>
<span style="color: #000000;">
server </span>= smtplib.SMTP(<span style="color: #800000;">"</span><span style="color: #800000;">smtp.126.com</span><span style="color: #800000;">"</span>,25) <span style="color: #008000;">#</span><span style="color: #008000;"> SMTP服务</span>
server.login(self.email,self.pwd) <span style="color: #008000;">#</span><span style="color: #008000;"> 邮箱<a href="/tag/yonghuming/" target="_blank" class="keywords">用户名</a>和<a href="/tag/mimap/" target="_blank" class="keywords">密码</a></span>
server.sendmail(self.email,[to,],msg.as_string()) <span style="color: #008000;">#</span><span style="color: #008000;"> 发送者和接收者</span>
server.quit()</pre>
动态导入模块+反射
settings
自定义消息提醒的配置 ###################
MESSAGE_CLASSES =
<div class="cnblogs_code">
django.conf 邮件、微信
:param to: 接受者
:param name: 接受者姓名
:param subject: 主题
:param body: 内容
:return:
cls_path
module_path,class_name = cls_path.rsplit(,maxsplit=1一个类名(都是字符串)
m =
obj =
obj.send(subject,) 方法