我開始學習Django,我正在實現「測試視圖」功能。 當我在shell中使用測試客戶端時,發生如下異常。Django無效的HTTP_HOST標頭:'testserver'。您可能需要添加u'testserver'ALLOWED_HOSTS
Invalid HTTP_HOST header: 'testserver'. You may need to add u'testserver' to ALLOWED_HOSTS.
我在shell中運行命令如下。
>>> from django.test.utils import setup_test_environment
>>> setup_test_environment()
>>> from django.test import Client
>>> client = Client()
>>> response = client.get('/')
>>> response.status_code
400
在本教程中,404應該出現的,但我得到400 當我繼續運行該命令,如下所示,發生同樣的異常。
>>> response = client.get(reverse('polls:index'))
>>> response.status_code
400
,但其結果必然是200.I想我應該在settings.py聲明ALLOWED_HOSTS,但我怎麼能? 我使用$ python manage.py runserver在本地主機上運行服務器。
我想知道原因和解決方法。
這裏是settings.py如下。
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = '8v57o6wyupthi^#41_yfg4vsx6s($1$x0xmu*95_u93wwy0_&u'
DEBUG = True
ALLOWED_HOSTS = [127.0.0.1,'localhost']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
]
.... (MIDDLEWARE)
ROOT_URLCONF = 'tutorial.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'tutorial.wsgi.application'
.... (DATABASES, AUTH_PASSWORD_VALIDATORS)
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
是你的調試假的? – Exprator
感謝您與我聯繫。是的,調試是錯誤 –
然後在允許的主機放127.0.0.1,本地主機和檢查 – Exprator