django中间件的编程思想

利用字符串来导入模块

importlib模块

importlib,importmodule('文件名+点的形式')

通过对字符串的分割 分别得到py模块 和类名的字符串 

利用 getattr(模块,类名字符串)得到类

类实例化对象 

对象再调用方法

就可以实现对整体的调用

settings start __init__文件 理清各个文件是分别干什么用 

start 启动 文件导入 import notify即可

settings里仅需要配置字符串路径即可

__init__ 需要初始化 对settings里提供的数据进行处理 ,rsplit 方法很有新意注意以后的应用   ###rsplit('.',maxsplit=1)从右往左切 最多切一次

import settings
import importlib


def send_all(content):
for path_str in settings.NOTIFY_LIST:
module_path,class_name = path_str.rsplit('.',maxsplit=1)
#利用字符串导入模块
module = importlib.import_module(module_path)
cls = getattr(module,class_name)
obj = cls()
obj.send(content)
posted @ 2021-06-02 10:40  不想拖累他人  阅读(60)  评论(0)    收藏  举报