考虑一个Flask应用程序,它导入一个从文件生成配置的配置类(在本例中为YAML):
from config import ConfigGenerator
app = Flask(__name__)
Flask应用中配置对象的正确位置是什么?
它应该在模块命名空间中吗?
config = ConfigGenerator('/etc/server/config.yaml')
或app.config
:
app.config['my_config'] = ConfigGenerator('/etc/server/config.yaml')
甚至直接在app
下:
app.myconfig = ConfigGenerator('/etc/server/config.yaml')
我认为所有三个选项都可以使用,但我想知道是否有任何样式或Flask特定的注意事项需要考虑。
答案 0 :(得分:4)
前两个选项没有太大区别,除了您现在不必单独导入配置对象。换句话说,使用app.config
,只要您有权访问current_app
,就可以访问整个Flask应用中的配置。
不应使用最后一个选项,不要向Flask对象添加属性。