目录
- 1.从配置对象中加载
- 2.从配置文件中加载
- 3.从环境变量中加载
- 4.从Pycharm中的运行时设置环境变量的方式加载
- 5.企业项目开发常用的方式
应用程序配置参数设置的是一个Web
应用工程的相关信息,比如:
-
数据库的连接信息
-
日志的配置信息
-
自定义的配置信息
-
…
注意:这样可以集中管理项目的所有配置信息
Flask
将配置信息保存到了app.config
属性中,该属性可以按照字典类型进行操作。
1.从配置对象中加载
app.config.from_object()
# -*- coding: utf-8 -*-
# @File : 02应用程序参数.py
# @author: Flyme awei
# @email : 1071505897@qq.com
# @Time : 2022/7/26 0:25
from flask import Flask
class DefaultConfig(object):
"""默认Web项目配置"""
USER = 'Flyme awei'
PWD = 'root'
app = Flask(__name__)
# 从配置对象中加载
app.config.from_object(DefaultConfig)
@app.route('/')
def index():
print(app.config['USER'])
print(app.config["PWD"])
return "hello word!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
这样的好处是可以在项目开发中来继承和重写:
class MyDevelopmentConfig(DefaultConfig):
DEBUG=True
2.从配置文件中加载
新建一个配置文件setting.py
,这个文件中的内容是:参数名=参数值
,比
如:PWD = 'root'
app.config.from_pyfile('setting.py')
# -*- coding: utf-8 -*-
# @File : setting.py.py
# @author: Flyme awei
# @email : 1071505897@qq.com
# @Time : 2022/7/26 0:38
# Web 项目的整个配置文件
USER = 'Flyme awei'
PWD = 'root'
# -*- coding: utf-8 -*-
# @File : 02从配置对象中加载.py
# @author: Flyme awei
# @email : 1071505897@qq.com
# @Time : 2022/7/26 0:25
from flask import Flask
app = Flask(__name__)
# 从配置文件中加载
app.config.from_pyfile('setting.py')
@app.route('/')
def index():
print(app.config['USER'])
print(app.config["PWD"])
return "hello word!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
3.从环境变量中加载
先配置环境变量
Flask使用环境变量加载配置的本质是通过环境变量值找到配置文件,再读取配置文件的信息,其使用方式为
app.config.from_envvar('环境变量名')
环境变量的值为配置文件的绝对路径
先在终端中执行如下命令
export PROJECT_SETTING='~/setting.py
’
# -*- coding: utf-8 -*-
# @File : 04从环境变量中加载.py
# @author: Flyme awei
# @email : 1071505897@qq.com
# @Time : 2022/7/26 0:50
from flask import Flask
app = Flask(__name__)
# 从环境变量中加载
app.config.from_envvar('SETTING_PATH', silent=True)
@app.route('/')
def hello_word():
print(app.config['USER'])
print(app.config['PWD'])
return 'hello word'
if __name__ == '__main__':
app.run('0.0.0.0', 8888, debug=True)
silent
参数:
False
表示不安静的处理,没有值时报错通知,默认为False
True
表示安静的处理,即时没有值也让Flask
正常的运行下去
4.从Pycharm中的运行时设置环境变量的方式加载
使用非常少
5.企业项目开发常用的方式
使用工厂模式创建Flask app
,并结合使用配置对象与环境变量加载配置
-
使用配置对象加载默认配置
-
使用环境变量加载不想出现在代码中的敏感配置信息
def create_flask_app(config):
""" 创建Flask应用 :param config: 配置对象 :return: Flask应用 """
app = Flask(__name__)
app.config.from_object(config)
# 从环境变量指向的配置文件中读取的配置信息会覆盖掉从配置对象中加载的同名参数
app.config.from_envvar("PROJECT_SETTING", silent=True)
return app
class DefaultConfig(object):
"""默认配置"""
USER = 'ROOT'
class DevelopmentConfig(DefaultConfig):
DEBUG=True
# app = create_flask_app(DefaultConfig)
app = create_flask_app(DevelopmentConfig)
@app.route("/")
def index():
print(app.config['USER'])
return "hello world"