从flask documentation开始,我试图在我的项目中实现config。但它似乎并不像预期的那样有效。我可能错了。但我不明白我错过了什么。在
class Config(object):
DEBUG = False
TESTING = False
CSRF_ENABLED = True
TIMEOUT_COUNT=60
DBCONFIG ={
'DBNAME' : 'dbname',
'DBUSER' : 'laxmikant',
'DBPASSWORD' : '*******',
'DBHOST' : 'localhost'
}
class ProductionConfig(Config):
SERVER_NAME = 'PRODUCTION'
dbcredentials = {'DBUSER' : 'produser', 'DBPASSWORD':'******'}
Config.DBCONFIG.update(dbcredentials)
class DevelopmentConfig(Config):
SERVER_NAME = 'DEVELOPMENT'
DEVELOPMENT = True
TESTING = True
DEBUG = True
dbcredentials = {'DBUSER' : 'devuser', 'DBPASSWORD':'******'}
Config.DBCONFIG.update(dbcredentials)
在运行python run.py
之前,我根据环境设置APP_SETTINGS
:
我读取了配置文件并为两个服务器打印了DBCONFIG:
environment = os.environ['APP_SETTINGS']
app.config.from_object(environment)
print '''[{}] INFO {}'''.format(app.config['SERVER_NAME'], app.config['DBCONFIG'])
以下是生产服务器的实际输出:
$ export APP_SETTINGS="config.ProductionConfig"
laxmikant:~/workspace/project-xyz$ python run.py
[PRODUCTION] INFO {'DBPASSWORD': '******', 'DBUSER': 'devuser', 'DBHOST': 'localhost', 'DBNAME': 'dbname'}
[02-10 2016 22:39:33] INFO - * Running on http://0.0.0.0:3004/ (Press CTRL+C to quit)
以及开发服务器
$ export APP_SETTINGS="config.DevelopmentConfig"
laxmikant:~/workspace/project-xyz$ python run.py
[DEVELOPMENT] INFO {'DBPASSWORD': '******', 'DBUSER': 'devuser', 'DBHOST': 'localhost', 'DBNAME': 'dbname'}
[02-10 2016 22:41:40] INFO - * Running on http://0.0.0.0:3004/ (Press CTRL+C to quit)
问题是,为什么development
和生产{DBCONFIG
信息?在
**注意**-我不会在生产中使用python run.py
,但这里我只需要测试配置。所以请忽略python run.py
您试图在子类中更新同一父类的字典。尝试复制和更新:
相关问题 更多 >
编程相关推荐