settings插拔式源码

Posted asdaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了settings插拔式源码相关的知识,希望对你有一定的参考价值。

创建一个文件夹notify

__init__.py

技术图片
import settings
import importlib


def send_all(content):
    for path_str in settings.NOTIFY_LIST:  # 1.拿出一个个的字符串   ‘notify.email.Email‘
        module_path,class_name = path_str.rsplit(.,maxsplit=1)  # 2.从右边开始 按照点切一个 [‘notify.email‘,‘Email‘]
        module = importlib.import_module(module_path)  # from notity import msg,email,wechat
        cls = getattr(module,class_name)  # 利用反射 一切皆对象的思想 从文件中获取属性或者方法 cls = 一个个的类名
        obj = cls()  # 类实例化生成对象
        obj.send(content)  # 对象调方法
技术图片

email.py

class Email(object):
    def __init__(self):
        pass  # 发送邮件需要的代码配置

    def send(self,content):
        print(邮件通知:%s%content)

msg.py

class  Msg(object):
    def __init__(self):
        pass  # 发送短信需要的代码配置

    def send(self,content):
        print(短信通知:%s % content)

qq.py

class QQ(object):
    def __init__(self):
        pass  # 发送qq需要的代码准备

    def send(self,content):
        print(qq通知:%s%content)

wechat.py

class WeChat(object):
    def __init__(self):
        pass  # 发送微信需要的代码配置

    def send(self,content):
        print(微信通知:%s%content)

settings.py

NOTIFY_LIST = [
    notify.email.Email,
    notify.msg.Msg,
    # ‘notify.wechat.WeChat‘,
    notify.qq.QQ,
]

start.py

import notify

notify.send_all(国庆放假了 记住放八天哦)

技术图片

技术图片

以上是关于settings插拔式源码的主要内容,如果未能解决你的问题,请参考以下文章

django 之csrfauth模块及settings源码插拔式设计

☆Django☆---中间件 csrf跨站请求伪造 auth模块 settings功能插拔式源码

Python Django 生命周期 中间键 csrf跨站请求伪造 auth认证模块 settings功能插拔式源码

CMDB 资产采集——插件可插拔式可拓展思想

ModelSerializer(重点) 基表 测试脚本 多表关系建外键 正反查 级联 插拔式连表 序列化反序列化整合 增删查 封装response

auth模块 + 插拔式思想