Django模板报TemplateDoesNotExist异常(亲测可行)
本文针对Django 2.0在Windows环境下开发时遇到的TemplateDoesNotExist异常提供解决方案。当修改settings.py配置无效时,核心解决思路是在templates目录下建立与应用名称一致的子文件夹,并将HTML模板文件置于该子文件夹中。通过调整项目目录结构而非仅修改路由或配置,即可成功访问模板。
环境
Django 2.0 + Win 10 + Pycharm + 360浏览器
报错

项目结构(报异常)

解决方法
参考了大量技术博客的解决方案,大多数建议都指向修改settings.py文件。经过数小时的反复配置尝试,问题仍未得到解决。
随后注意到报错信息提示在templates路径下无法找到对应文件,因此尝试在项目根目录中手动创建一个名为templates的文件夹。
再次运行项目后,依然出现无法加载html文件的问题,即使尝试调整路由配置也未能奏效。
经过多次测试,最终找到正确方案:在templates文件夹内新建一个与应用名称相同的子文件夹(例如本例中的indexpage),并将html文件放置于该子文件夹内,此时模板即可正常访问。
项目结构(已解决)

代码(已解决)
indexpage/views.py
... ...
def get_login_page(request):
return render(request, "indexpage/login.html")
... ...
indexpage/urls.py
from django.urls import path, include
import indexpage.views
urlpatterns = [
path('hello',indexpage.views.helloworld),
path('login', indexpage.views.get_login_page),
]
settings.py(保持默认)
... ...
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# print(BASE_DIR)
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',
],
},
},
]
... ...
到此这篇关于Django模板报TemplateDoesNotExist异常(亲测可行)的文章就介绍到这了,更多相关Django TemplateDoesNotExist异常内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









