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

标签 python flask

我正在阅读有关 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 配置变量。

关于python - Flask:Config.py - 如何将开发与生产分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16797363/

相关文章:

python - 如何将 timedelta 对象转换为 datetime 对象

Python Difflib 的 SequenceMatcher 没有找到最长公共(public)子串

python - 计算数组中某个值的平均位置快速方法

python - 根据列表中的最小值获取键值对

Python Flask 未从 SQLAlchemy 数据库中删除正确的 ID

ubuntu - 如何使用 Boto3 修复 DynamoDB 的 "NoCredentialsError"

python - 如何将 imdb 列表文件导入 postgresql 数据库?

python - 如何将 flask-sqlalchemy 与现有的 sqlalchemy 模型一起使用?

python - Flask APScheduler + Gunicorn worker - 在套接字修复后仍然运行两次任务

python - 如何让一个 Flask 应用监听两个不同的端口?