flask通过配置文件实现程序可扩展

栏目: Python · 发布时间: 5年前

内容简介:在程序中实现发邮件、短信、微信等功能,通过修改配置而不修改代码的方式根据实际情况定制发生消息的类型。创建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"
]

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Sovereign Individual

The Sovereign Individual

James Dale Davidson、William Rees-Mogg / Free Press / 1999-08-26 / USD 16.00

Two renowned investment advisors and authors of the bestseller The Great Reckoning bring to light both currents of disaster and the potential for prosperity and renewal in the face of radical changes ......一起来看看 《The Sovereign Individual》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具