有没有办法确定Django是否在localhost上运行并相应地在DEBUG
中设置settings.py
变量。
因此,如果我在本地运行服务器,它会将DEBUG
设置为True
,否则会将其设置为False
。
Localhost:python manage.py runserver
不是localhost:python manage.py runserver 0.0.0.0:8000
答案 0 :(得分:15)
根据Bernhard Vallant的建议,您只需在runserver
中查看sys.argv
。
您可以使用以下内容替换DEBUG
中的settings.py
作业:
DEBUG = (sys.argv[1] == 'runserver')
您还应import sys
中的某个地方settings.py
。
答案 1 :(得分:0)
无法与您的问题接受此相关答案的永久链接。所以,只是粘贴它: -
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的模块的类,但是我希望这能让你满意。
PS:有关详细信息,请参阅How can I tell whether my Django application is running on development server or not?
答案 2 :(得分:0)
这不是最好的方法,但它有效:) 为了更好的方法,您可以使用django-configurations
import sys
# Determine if in Production or Development
if (len(sys.argv) >= 2 and sys.argv[1] == 'runserver'):
DEBUG = True
#...
else:
DEBUG = False
#...