Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶配置文件不工作_Python_Flask_Configuration Files - Fatal编程技术网

Python 烧瓶配置文件不工作

Python 烧瓶配置文件不工作,python,flask,configuration-files,Python,Flask,Configuration Files,从一开始,我试图在我的项目中实现配置。但它似乎并没有像预期的那样起作用。我可能错了。但我不明白我错过了什么 class Config(object): DEBUG = False TESTING = False CSRF_ENABLED = True TIMEOUT_COUNT=60 DBCONFIG ={ 'DBNAME' : 'dbname', 'DBUSER' : 'laxmikant', 'DBPASSWORD'

从一开始,我试图在我的项目中实现配置。但它似乎并没有像预期的那样起作用。我可能错了。但我不明白我错过了什么

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
I根据环境设置
APP\u设置

export APP_SETTINGS="config.ProductionConfig" #- on production server
export APP_SETTINGS="config.DevelopmentConfig" #- on dev server
我读取了服务器的配置文件并打印了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)
而对于DEV服务器

$ 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
和production
config
给出相同的
DBCONFIG
信息


**注意**-我不会在生产中使用
python run.py
,但这里我只需要测试配置。因此,请忽略
python run.py

您试图在子类中更新同一父类的字典。尝试复制并更新它:

class ProductionConfig(Config):
    dbcredentials = {'DBUSER' : 'produser', 'DBPASSWORD':'******'}
    DBCONFIG = Config.DBCONFIG.copy()
    DBCONFIG.update(dbcredentials)

class DevelopmentConfig(Config):
    dbcredentials = {'DBUSER' : 'devuser', 'DBPASSWORD':'******'}
    DBCONFIG = Config.DBCONFIG.copy()
    DBCONFIG.update(dbcredentials)

@侯赛因-对不起,那是打字错误@Hussain-获取错误
未定义名称“DBCONFIG”
Oh。可以我想不出发生这种事的任何原因。对不起,谢谢你澄清错误!