内容简介:在程序中实现发邮件、短信、微信等功能,通过修改配置而不修改代码的方式根据实际情况定制发生消息的类型。创建flask主程序文件app.py,内容如下在app.py同级目录下创建settings.py配置文件,内容如下
在程序中实现发邮件、短信、微信等功能,通过修改配置而不修改代码的方式根据实际情况定制发生消息的类型。
创建flask主程序文件app.py,内容如下
from flask import Flask, request from utils.message import send_msgs app = Flask(__name__) app.config['DEBUG'] = True app.secret_key = "password" @app.route('/') def index(): #data = request.query_string.get(val) data = 'xyy' if data == 'xyy': # 发送:短信/邮件 send_msgs('....') return 'hellow world!' if __name__ == '__main__': app.run()
在app.py同级目录下创建settings.py配置文件,内容如下
MSG_LIST = [ "utils.message.email.Email", "utils.message.msg.Msg" ]
创建utils/message 包,并在message包下创建__init__.py、email.py、msg.py、base.py
__init__.py内容如下
import importlib import settings # 通过读取配置文件来发送信息 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)
base.py内容如下,这个基类用于强制要求继承他的类必须实现send方法,因为__init__.py中的send_msgs方法是通过send方法来调用类方法的。
class Base(object): def send(self): raise NotImplementedError('.....')
email.py 内容如下
class Email(Base): # 发生邮件 def __init__(self): self.username = 'asdf' self.pwd = 'asdf' def send(self, msg): print("send email")
msg.py内容如下
class Msg(Base): # 发生短信 def __init__(self): self.username = 'asdf' self.pwd = 'asdf' def send(self, msg): print("send msg")
如果要增加一个发送微信消息的的方法,只需要再在message目录下创建一个wechat.py ,并在settings.py中增加一行记录即可
wechat.py内容如下
class Wechat(): # 发生短信 def __init__(self): self.username = 'asdf' self.pwd = 'asdf' def send(self, msg): print("send msg")
settings.py 做如下修改
MSG_LIST = [ "utils.message.email.Email", "utils.message.msg.Msg", "utils.message.wechat.Wechat" ]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 垂直扩展PostgreSQL有关配置
- windows下安装MongoDB扩展和配置
- 如何写出一个利于扩展的vue路由配置
- Jenkins Pipeline 系列(一):如何配置扩展共享库
- PHP配置篇(一)--php开启redis扩展
- ApiBoot v2.2.7 发布,新增扩展 SpringBoot Mongo 详细配置组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML 编码/解码
HTML 编码/解码
XML、JSON 在线转换
在线XML、JSON转换工具