Flask:Config.py - 如何将dev与生产分开?

时间:2013-05-28 16:47:36

标签: python flask

我正在阅读有关烧瓶中configuration files的文档:

遵循同样的想法,我在我的根目录中引入了config.py。 并在那里输入:

class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = 'sqlite://:memory:'


class DevelopmentConfig(Config):
    DEBUG = True
    use_reloader = False
    port = 6000

在我的server.py中,我有以下内容:

http_root = os.path.abspath( os.path.join(os.path.dirname(__file__), "../www") )
app = Flask(__name__,static_folder=http_root, static_url_path="/app")
app.config.from_object('config.DevelopmentConfig')

if __name__ == "__main__":
    app.run(            
            port = app.config['port'],
            use_reloader=False,
            debug = app.config['DEBUG']
            )

然而,当我运行服务器时,我得到KeyError: 'port' 我错过了什么?

1 个答案:

答案 0 :(得分:1)

查看config.from_object

def from_object(self, obj):
    if isinstance(obj, basestring):
        obj = import_string(obj)
    for key in dir(obj):
        if key.isupper():
            self[key] = getattr(obj, key)

检查小写名称(__dict____repr__等)。因此将使用UPPERCASE配置变量。