在WSGI应用程序中区分调试和生产环境

时间:2013-01-16 20:30:01

标签: python web-applications wsgi dev-to-production

根据生产或调试环境(特别是与应用程序需要发布作业的任务服务器相关的一些服务器配置信息),我们需要在Python WSGI应用程序中加载不同的配置选项。到目前为止我们实现它的方式是在我们的部署脚本中设置一个全局debug变量 - 它可以正确地修改部署设置。但是,当我们执行应用程序时,我们需要将调试变量设置为True - 因为它的默认值为False

到目前为止,很难正确地确定调试变量的工作方式,因为它是在部署时设置的,而不是在执行时设置的。我们可以在调用我们的调试WSGI服务器的serve_forever方法之前设置它,但是我不知道它的含义以及该解决方案有多好。

在WSGI应用程序中区分调试和生产环境的常用模式是什么?如果我需要在系统参数中传递它,或者有任何其他不同的方式,请告诉我。非常感谢!

2 个答案:

答案 0 :(得分:2)

如果您的设置允许,请考虑使用环境变量。您的生产服务器可以为环境变量设置一个值,而dev服务器则具有另一个值。然后在执行应用程序时,您可以检测环境变量的值并相应地设置“debug”。

答案 1 :(得分:1)

我不喜欢使用环境变量。尝试使其适用于您的应用程序配置,可以通过以下方式覆盖:

  • 导入非版本化文件(在 dev 环境中),由try-except包装并提供正确的日志通知。
  • 命令行参数(标准库中的argparse