app_config [config_name]获取烧瓶环境的KeyError null值

时间:2018-03-21 06:27:01

标签: python flask config

我通过引用此代码

在pyv环境中创建员工管理软件

https://github.com/littlewonder/squadmaster

我已经安装了pip,烧瓶和其他相关的库。我也创建了良好的环境。我也把项目文件夹放在烧瓶里。

侧瓶文件夹中的

文件夹结构就像这样

enter image description here

当我试图调试run.py时。它给了我错误

app.config.from_object(app_config[config_name]) KeyError: None

这是我的run.py文件

import os

from app import create_app

config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)

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

我遇到过类似的问题

Flask does not load configuration

我已实施其解决方案并使用这些字符串

app.config.from_object('myapplication.default_settings')

app.config.from_object('my_app.config.{}'.format(config_name))

我已将FLASK_CONFIG设置为文件中的上部 我已将FLASK_CONFIG设置为系统构建路径中的环境变量。但它导致我错误,因为KeyError ="完整路径"

我也尝试过设置 FLASK_CONFIG ='开发' 和FLASK_CONFIG = DevelopmentConfig

如config.py

中所述
app_config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig
}

还有什么我可以尝试得到一个提示是否出错。需要一些建议

2 个答案:

答案 0 :(得分:1)

第一个问题可以通过合理的默认值来解决:

config_name = os.getenv('FLASK_CONFIG') or 'default'

或只是os.getenv('FLASK_CONFIG', 'default'),其中默认的含义可以在config.app_config中设置

app_config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'default': ProductionConfig
}

app_config将名称映射到具有配置的对象。也允许以字符串形式引用,但您可以将对象直接传递给.from_object):

app.config.from_object(app_config[config_name])

存储的配置数据,例如DevelopmentConfig必须包含数据项作为其属性。它可以是一个班级。

答案 1 :(得分:1)

对于Linux第一类: 出口FLASK_ENV =发展