配置#

一种常见的模式是在环境中存储配置值。Quart 通过 from_prefixed_env() 支持此功能,该方法可用于将环境变量加载到配置中。仅加载以默认前缀 QUART_ 开头的环境变量。例如,如果设置了环境变量 QUART_TESTING=true,则:

app = Quart(__name__)
app.config.from_prefixed_env()
assert app.config["TESTING"] is True

另一种常见的配置加载模式是使用类继承来定义具有生产和开发覆盖的通用设置,例如:

class Config:
    DEBUG = False
    TESTING = False
    SECRET_KEY = 'secret'

class Development(Config):
    DEBUG = True

class Production(Config):
    SECRET_KEY = 'an actually secret key'

然后可以在例如 create_app 函数中加载它,例如:

def create_app(mode='Development'):
    """In production create as app = create_app('Production')"""
    app = Quart(__name__)
    app.config.from_object(f"config.{mode}")
    return app

自定义配置类#

可以将 config_class 设置为自定义类,但必须在应用初始化之前更改,因为 make_config() 在构造时被调用。

实例文件夹#

实例文件夹是用于存储文件和配置设置的特定于部署的位置。与相对于应用程序根路径加载文件 open_resource() 相比,您可以相对于实例路径加载文件 open_instance_resource(),包括配置。要从该文件夹加载配置,而不是相对于应用程序根路径加载,只需在初始化应用 app = Quart(__name__, instance_relative_config=True) 时将 instance_relative_config 参数提供为 True

实例路径可以在初始化应用时指定,或者如果它存在,则会自动找到。搜索位置是:

/app.py
/instance/

或者如果应用程序已安装:

$PREFIX/var/app-instance/