Skip to main content
 首页 » 编程设计

python之Flask:Config.py之如何将开发与生产分开

2025年05月04日10lexus

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

按照同样的想法,我在我的根目录下引入了一个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' 请问我错过了什么?

请您参考如下方法:

看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__ 等)。因此将使用 UPCASE 配置变量。