2017-05-25 61 views
4

我開始學習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 
+0

是你的調試假的? – Exprator

+0

感謝您與我聯繫。是的,調試是錯誤 –

+0

然後在允許的主機放127.0.0.1,本地主機和檢查 – Exprator

回答

6
ALLOWED_HOSTS = ['127.0.0.1', 'localhost'] 

把它像這樣

+0

就是這樣。謝謝你的幫助:)。 –

+0

@YuiryKozlenko歡迎你 – Exprator

0
ALLOWED_HOSTS = ['XXX.iptime.org', 'localhost', '127.0.0.1', 'testserver'] 


# Application definition 

INSTALLED_APPS = [ 
    'polls.apps.PollsConfig', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 
相關問題