TemplateDoesNotExist Django

时间:2017-09-24 13:35:25

标签: django python-3.x django-models django-rest-framework django-views

我是Django的新手。刷新页面时出现此错误(TemplateDoesNotExist)。 我的代码看起来像这样: 项目名称:newsHtml

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', include('news.urls')),
] 

我创建了另一个名为news的目录,其中的文件如下所示: views.py

from django.http import HttpResponse
from django.template import loader

def index(request):
   template= loader.get_template('/home/index.html')
   return HttpResponse(template.render(request))

# def index(request):
#     return HttpResponse("<h1>its working<\h1>")

urls.py

from django.conf.urls import url
from. import views

urlpatterns = [
        url(r'^$',views.index,name='index'),
]

当我取消注释HttpResponse时,我得到了输出。 但无法找到模板无效的原因。 我的目录结构如下所示:

第一个目录:

newsHtml->settings.py,urls.py,wsgi.py

第二个目录:

news->templates/home/index.html,views.py,urls.py

我无法弄清楚缺少什么。我正在使用Django 1.11.5。

1 个答案:

答案 0 :(得分:1)

首先,为什么不使用Django快捷方式。

from django.shortcuts import render

您的索引视图应如下所示:

def index(request):
    return render(request, "home/index.html")

我相信这是因为您在/之前添加了home/index.html

同时确保这在您的设置中:

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',
            ],
        },
    },
]

此外,请确保您的申请位于INSTALLED_APPS