【问题标题】:Differentiating between debug and production environments in WSGI app区分 WSGI 应用程序中的调试和生产环境
【发布时间】:2012-12-31 07:01:57
【问题描述】:

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

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

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

【问题讨论】:

  • 您如何处理您的应用配置?您想要处理debug 的方式应该与您的配置模式保持一致。

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


【解决方案1】:

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

  • 导入非版本化文件(在 dev 环境中),由 try-except 包装并带有适当的日志通知。
  • 命令行参数(来自标准库的argparse

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • +1。这是一个非常好的主意。目前,我通过检查用于执行运行应用程序的脚本的命令行来实现它,但这可能是一个更好/更面向未来的解决方案。
    猜你喜欢
    • 2013-03-19
    • 2018-03-22
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多