我如何判断我的 Django 应用程序是否在开发服务器上运行?

新手上路,请多包涵

我如何确定我的应用程序是否在开发服务器上运行?我想我可以检查 settings.DEBUG 并假设 DEBUGTrue 那么它正在运行而不是依赖于开发服务器约定俗成。

原文由 Imran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 518
2 个回答
server = request.META.get('wsgi.file_wrapper', None)
if server is not None and server.__module__ == 'django.core.servers.basehttp':
    print('inside dev')

当然, wsgi.file_wrapper 可能在 META 上设置,并且有一个来自名为 django.core.servers.basehttp 的模块的类,这在另一个服务器环境中非常巧合,但我希望这会让你满意。

顺便说一句,我在开发服务器上运行时通过制作语法无效的模板发现了这一点,并在 TracebackRequest information 部分搜索了有趣的东西,所以我只是编辑我的答案以证实 Nate 的想法。

原文由 inerte 发布,翻译遵循 CC BY-SA 3.0 许可协议

我将以下内容放入我的 settings.py 中以区分标准开发服务器和生产服务器:

 import sys
RUNNING_DEVSERVER = (len(sys.argv) > 1 and sys.argv[1] == 'runserver')

然而,这也依赖于惯例。

(根据 Daniel Magnusson 的评论修改)

原文由 Aryeh Leib Taurog 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题