我编辑我settings.py
文件与条件块,就像这样:
import os # If needed.
if os.environ.get('DJANGO_DEBUG'):
print("Debug is enabled.")
DEBUG = True
# When not specified, ALLOW_HOSTS defaults to:
# ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
else:
DEBUG = False
ALLOWED_HOSTS = ["*"]
然后,通过将环境变量DJANGO_DEBUG=1
运行服务器。
DJANGO_DEBUG=1 python -Wall manage.py runserver
省略调用manage.py
时环境变量来禁用调试(因为它设置为任意值,包括0
仍然会是真的到了Python:只要你是一致的,你可以随意命名变量什么代码)
更新:一个评论者指出,当DEBUG
是True
的ALLOWED_HOSTS
指令被忽略。这只适用于旧版本的Django。如果当DEBUG
启用时未指定,则当前行为是表彰ALLOWED_HOSTS
或默认为本地主机地址。我的答案已更新,以反映这是一个小小的更正。
这是从Django documentation来源:
当DEBUG为True,并且ALLOWED_HOSTS是空的,所述宿主是 针对[ '本地主机', '127.0.0.1' 验证, '[:: 1]' ]
此外,它指出,在现在的几个主要版本线过时您的评论的行为:
在旧版本中,ALLOWED_HOST如果DEBUG = True,则不检查S。 Django 1.10.3,1.9.11和1.8.16中的这一点也发生了变化,以防止发生DNS重绑定攻击 。
这足够接近单个命令,谢谢! – Ted
'DJANGO_SETTINGS_MODULE' env var可用于指定特定设置文件的环境。 – ThorSummoner