Django本地部署遇TemplateDoesNotExist错误,请求排查解决
解决Django TemplateDoesNotExist错误
问题根源
你的配置核心问题是应用未注册,附带路径配置的潜在问题:
FortyTwop应用未添加到settings.py的INSTALLED_APPS列表中,导致Django的APP_DIRS=True无法扫描到该应用下的templates目录。- 若你原本计划使用项目根目录的templates,当前
TEMPLATES中DIRS的相对路径可能存在解析歧义,建议改用绝对路径。
解决方案
方案一:保留app内的templates结构(推荐)
- 打开
settings.py,找到INSTALLED_APPS列表,添加你的应用:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增该行注册应用 'FortyTwop', ]
- 保存后重启开发服务器,Django会自动识别
FortyTwop/templates目录,views.py中的render(request, 'index.html')可正常加载模板。
方案二:改用项目根目录的templates
- 在项目根目录(与
manage.py同级)创建templates文件夹,将index.html移入其中。 - 修改
settings.py的TEMPLATES配置,使用基于BASE_DIR的绝对路径:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', # 替换为绝对路径 'DIRS': [BASE_DIR / "templates"], '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', ], }, }, ]
- 重启服务器后即可正常访问页面。
内容的提问来源于stack exchange,提问作者Cerbero
相关产品推荐
相关产品推荐

