Flask之配置文件

42 篇文章 2 订阅

有很多方法,推崇的方法是:

app.config.from_object('pro_flask.settings.TestingConfig')

settings.py 

class Config(object):
      DEBUG = False
      TESTING = False
      DATABASE_URI = 'sqlite://:memory:'
 
class ProductionConfig(Config):
      DATABASE_URI = 'mysql://user@localhost/foo'
 
class DevelopmentConfig(Config):
      DEBUG = True
 
class TestingConfig(Config):
      TESTING = True

PS: settings.py文件默认路径要放在程序root_path目录,如果instance_relative_config为True,则就是instance_path目录

PS: 从sys.path中已经存在路径开始写

 

 

优雅的编程例子:

目录结构:

app.py

from flask import  Flask,request

from utils.message import send_msg

app = Flask(__name__)
app.secret_key="ddtegesgee"

@app.route('/index')
def index():
    name = request.args.get("name")
    if name == "kk":
        send_msg('...')
    else:
        return "error"


if __name__ == '__main__':
    app.run()

settings.py

MSG_LIST = [
    "utils.message.email.Email",
    "utils.message.msg.Message"
]

message包中 base.py

class Base(object):
    def send(self):
        raise NotImplementedError('...')

message包中 email.py

from .base import Base

class Email(Base):
    def send(self):
        pass

message包中 msg.py

from .base import Base

class Message(Base):
    def send(self):
        pass

message包中 __init__.py

import settings
import importlib

def send_msg(msg):
    for path in settings.MSG_LIST:
        module_name,func_name = path.rsplit('.',maxsplit=1)
        module = importlib.import_module(module_name)
        obj = getattr(module,func_name)()
        obj.send(msg)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值