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

14 浏览
0 Comments

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

如何确定我的应用程序是在开发服务器上运行还是不运行? 我想我可以检查settings.DEBUG 的值并假设如果DEBUGTrue,那么它就在开发服务器上运行了,但我更愿意确定而不是依赖于惯例。

admin 更改状态以发布 2023年5月22日
0
0 Comments

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的想法。

0
0 Comments

我在我的settings.py文件中加入了以下内容,以区分标准的开发服务器和生产服务器:

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

这也依赖于惯例。 (根据丹尼尔·马格努松的评论进行修改)

0