烧瓶生产和开发模式

时间:2017-07-06 14:06:52

标签: python flask config development-environment production-environment

我已经开发了一个带烧瓶的应用程序,我想将它发布用于生产,但我不知道如何在生产和开发环境(数据库和代码)之间进行分离,有文件可以帮助我或代码。 我在config.py文件中指定了两个环境,但我不知道如何处理。

function abc(reqObject, callback){
 request(reqObject, function(err,res){
   if(err)
  {
  callback(err, null);
}
else
{
  // <use this res for second req>
  request(reqObject, function(err,res){
  //  <err,res handling here>
 });
}
});
}

2 个答案:

答案 0 :(得分:21)

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

例如

$ 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,因为解释程序在运行其余脚本之前执行类定义中的所有代码。

答案 1 :(得分:8)

添加丹尼尔的回答:

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

由于您已在类中指定了配置,因此您将使用GHS12.1

加载配置