2013-01-16 69 views
4

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

到目前为止,很难正确确定调试变量的工作方式,因为它是在部署时设置的,而不是执行时间。我们可以在调用调试WSGI服务器的serve_forever方法之前对其进行设置,但我不知道这个问题的影响以及该解决方案的优点。

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

+0

那你如何处理你的应用程序的配置?你想处理'debug'的方式应该和你的配置模式一致。 –

回答

2

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

+0

+1。这是一个非常好的主意。现在,我通过检查用于执行运行应用程序的脚本的命令行来实现它,但这可能是更好的/更具前瞻性的解决方案。 –

1

我不喜欢使用环境变量。尽量做到与你的应用程序的配置,这可以通过覆盖工作:

  • 进口非版本控制的文件(在开发环境),通过try-except适当日志通知包裹。
  • 命令行参数(​​从标准库)