处理配置文件
先将事务归类,比如:
发邮件 from .base import Base class Email(Base): """ 发送邮件提醒相关 """ def __init__(self): """ 邮箱相关数据初始化 """ self.username = 'asdf' self.pwd = 'asdf' def send(self,msg): pass
发短信 from .base import Base class Msg(Base): """ 发送短信提醒相关 """ def __init__(self): """ 短信相关数据初始化 """ self.username = 'asdf' self.pwd = 'asdf' def send(self, msg): pass
发微信消息 from .base import Base class WeChat(Base): def send(self,msg): pass
为了使类具有一定规范,另写一个类,作为标准,使继承它的类都要实现它里面的方法,比如:
class Base(object): def send(self,msg): raise NotImplementedError('...')
写入配置文件
MSG_LIST = [ "utils.message.email.Email", "utils.message.msg.Msg", "utils.message.wechat.WeChat", ]
为了使配置文件生效,需在实现功能的所有类的同一目录下的__init__文件中写入
import settings import importlib def send_msgs(msg): for path in settings.MSG_LIST: m,c = path.rsplit('.',maxsplit=1) md = importlib.import_module(m) obj = getattr(md,c)() obj.send(msg)
在启动文件中写入
from flask import Flask,request from utils import msg from utils.message import send_msgs app = Flask(__name__) @app.route('/') def index(): data = request.args.get('val') if data == "xyy": send_msgs('.....') return 'Hello World!' if __name__ == '__main__': app.run()
什么时候不想用哪一种方式发送消息了,在配置文件中注释掉就行
这样做遵循了一条规则:对代码封闭,对配置文件开发

浙公网安备 33010602011771号