烧瓶生产发展模式

flask production and development mode

我用flask开发了一个应用,想发布到生产环境,但是我不知道如何分离生产环境和开发环境(数据库和代码),有没有文档帮我或代码。 我在config.py文件中指定了两个环境,但我不知道如何处理。

class DevelopmentConfig(Config):
    """
    Development configurations
    """
    DEBUG = True
    SQLALCHEMY_ECHO = True
    ASSETS_DEBUG = True
    DATABASE = 'teamprojet_db'
    print('THIS APP IS IN DEBUG MODE. YOU SHOULD NOT SEE THIS IN PRODUCTION.')


class ProductionConfig(Config):
    """
    Production configurations
    """
    DEBUG = False
    DATABASE = 'teamprojet_prod_db'

使用的一个约定是在启动应用程序之前指定一个环境变量。

例如

$ ENV=prod; python run.py

在您的应用中,您检查该环境变量的值以确定要使用的配置。你的情况:

run.py

import os
if os.environ['ENV'] == 'prod':
    config = ProductionConfig()
else:
    config = DevelopmentConfig()

另外值得注意的是声明

print('THIS APP IS IN DEBUG MODE. YOU SHOULD NOT SEE THIS IN PRODUCTION.')

无论您设置哪个 ENV 都会打印,因为解释器会在 运行 脚本的其余部分之前执行 class 定义中的所有代码。

添加到 Daniel 的回答中:

Flask has a page in its documentation that discusses this very issue.

由于您已经在 类 中指定了您的配置,您将使用 app.config.from_object('configmodule.ProductionConfig')

加载您的配置