动态导入模块和反射

######setting.py#####
MESSAGE_CLASSES = [
    'utils.message.email.Email',
    'utils.message.msg.Msg',
    'utils.message.wx.WeChat',
    'utils.message.dingding.DingDing',
]
#######init.py###########
from django.conf import settings
def send_message(to,name,subject,body):
    """
    短信、邮件、微信
    :param to: 接受者 
    :param name: 接受者姓名
    :param subject: 主题
    :param body: 内容
    :return: 
    """
    for cls_path in settings.MESSAGE_CLASSES:
        # cls_path是字符串
        module_path,class_name = cls_path.rsplit('.',maxsplit=1)
        m = importlib.import_module(module_path)
        obj = getattr(m,class_name)()
        obj.send(subject,body,to,name,)

 

posted @ 2017-12-28 19:05  TAMAYURA  阅读(107)  评论(0编辑  收藏  举报