2016-04-03 152 views
1

我正在嘗試使用着陸頁製作基本的Django應用程序。我做了以下內容:無法訪問登錄頁面

python manage.py startapp landing 

然後我說landingINSTALLED_APPSurl(r'^$', 'landing.views.index')urlpatterns

裏面landing/view.py,我說:

from django.shortcuts import render 
from django.shortcuts import render_to_response 
from django.template import RequestContext 

def index(request): 
    return render_to_response('landing/index.html', context_instance=RequestContext(request)) 

哪裏landing/index.html是我期望的着陸頁。

當我嘗試訪問登陸頁面出現錯誤:

TemplateDoesNotExist at/
landing/index.html 

我在做什麼錯?

settings.py的設置如下:

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'landing', 
] 

MIDDLEWARE_CLASSES = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

ROOT_URLCONF = 'learningSuite.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 = 'learningSuite.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 


# Password validation 
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 
+0

index.html文件在哪裏? –

+0

在'landing'目錄內。 – octavian

+1

對不起,你需要更具體。直接在模型和視圖相同的着陸目錄內?裏面另一個登陸目錄/ templates?請顯示實際的目錄結構。 –

回答

1

您應該設置APP_DIRSTrue允許Django的查找模板在templates目錄中的項目的應用程序。

而且,您需要在myProject/landing/templates/目錄內有index.html

+0

它被設置爲「真」。 – octavian

+0

@octavian能否請你發佈所有模板相關的設置?謝謝。 – alecxe

+0

我編輯了我的帖子 – octavian

2

模板需要放入單獨的模板目錄中。要麼他們都應該在DIRS設置中專門命名的目錄中,要麼APP_DIRS是True,那麼他們可以在<app_name>/templates之內。

+0

我在'myProject/landing/templates /'裏面移動了'index.html'。我發佈的代碼沒有其他問題嗎?我在網上找到它,它可能來自舊版本的Django。 – octavian