我編輯我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