微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射参考Django中间件源码

实现抽象类的两种方式

方式一

abc Meta abc <span style="color: #0000ff;">class BaseMessage(Metaclass=<span style="color: #000000;">ABCMeta):

@abstractmethod
</span><span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; send(self,subject,body,to,name):
    </span><span style="color: #0000ff;"&gt;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;"&gt;def</span><span style="color: #000000;"&gt; send(self,name):
    </span><span style="color: #800000;"&gt;'''</span><span style="color: #800000;"&gt;
    :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;"&gt;'''</span><span style="color: #000000;"&gt;

    msg </span>= MIMEText(body,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;plain</span><span style="color: #800000;"&gt;'</span>,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;utf-8</span><span style="color: #800000;"&gt;'</span>)  <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 发送<a href="/tag/neirong/" target="_blank" class="keywords">内容</a></span>
    msg[<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;From</span><span style="color: #800000;"&gt;'</span>] = formataddr([self.user,self.email])  <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 发件人</span>
    msg[<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;To</span><span style="color: #800000;"&gt;'</span>] = formataddr([name,to])  <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 收件人</span>
    msg[<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;Subject</span><span style="color: #800000;"&gt;'</span>] = subject <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; <a href="/tag/zhuti/" target="_blank" class="keywords">主题</a></span>

<span style="color: #000000;">

    server </span>= smtplib.SMTP(<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;smtp.126.com</span><span style="color: #800000;"&gt;"</span>,25) <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; SMTP服务</span>
    server.login(self.email,self.pwd) <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 邮箱<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;"&gt;#</span><span style="color: #008000;"&gt; 发送者和接收者</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,)  方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐