我是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。
答案 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
。