胖蔡叨叨叨
你听我说

Python Flask框架配置管理加载的三种方式

Flask框架提供flask.config.Config来进行管理程序运行时的配置管理,该类继承自Python的字典,因此所有配置项都可以看成key-value键值对,flask配置可以直接通过Flask对象config属性进行属性操作。我们可以通过如下三种方式进行加载配置项:

1、通过配置对象加载

通过创建settings.py配置文件,通过导入配置文件进行加载,代码如下:

# settings.py
class Setting:
    DEBUG =  true
    HOST =  127.0.0.1
    PORT = 7000
    ENV= 'development'

# main.py
from flask import Flask
# 导入配置类
from settings import Setting
 
app = Flask(__name__)
 
# 从配置对象中加载
app.config.from_object(Setting)
 
@app.route('/env')
def env():
    # get方式调用配置
    env = app.config.get('ENV')
    print('get env:',env)
    return env

if __name__ == "__main__":
    app.run(host=app.config.get('HOST'),port=app.config.get('PORT'))

2、通过配置文件加载

通过配置文件进行加载,直接传入文件名即可,代码如下:

# settings.py
DEBUG =  true
HOST =  127.0.0.1
PORT = 7000
ENV= 'development'

#main.py
from flask import Flask
 
app = Flask(__name__)
 
# 从配置对象中加载
app.config.from_pyfile('settings.py')
 
@app.route('/env')
def env():
    # get方式调用配置
    env = app.config.get('ENV')
    print('get env:',env)
    return env

if __name__ == "__main__":
    app.run(host=app.config.get('HOST'),port=app.config.get('PORT'))

3、通过环境变量加载

可以在本地设置环境变量,然后通过代码导入环境变量,不好的就是单个单个导入,不太方便。代码如下所示:

$ export ENV = development

# main.py
from flask import Flask
 
app = Flask(__name__)
 
# 从配置对象中加载
app.config.from_envvar('ENV')
 
@app.route('/env')
def env():
    # get方式调用配置
    env = app.config.get('ENV')
    print('get env:',env)
    return env

if __name__ == "__main__":
    app.run(host='127.0.0.1',port='7000')

赞(2) 打赏
转载请附上原文出处链接:胖蔡叨叨叨 » Python Flask框架配置管理加载的三种方式
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏