You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已正确设置DIR仍出现Django TemplateDoesNotExist问题求助

解决Django TemplateDoesNotExist异常(Anaconda环境下)

我来帮你梳理这个问题——你的模板路径配置看起来完全正确,但Django却只在Anaconda的site-packages目录里搜索模板,这通常是几个容易忽略的小问题导致的,下面是逐一排查的方案:

1. 验证模板路径的有效性和文件存在性

虽然错误页面显示了DIRS的路径,但最好直接在settings.py里添加代码验证:

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TDIR = os.path.join(BASE_DIR, 'Templates').replace('\\', '/')
# 添加这两行打印,启动服务器时查看控制台输出
print("Template directory exists:", os.path.exists(TDIR))
print("Files in template directory:", os.listdir(TDIR))

启动服务器后,检查控制台:

  • 如果Template directory exists是False:说明路径拼写错误,比如Templates写成了Template,或者BASE_DIR的计算有误
  • 如果路径存在但列表里没有welcomePage.html:确认模板文件名完全一致(注意大小写!Windows看似不区分,但Django在某些环境下会严格匹配,比如welcomepage.html和welcomePage.html是不同的)

2. 简化模板路径的写法

你当前用replace('\\', '/')处理路径分隔符其实没必要,Django在Windows下能正常识别反斜杠,建议简化成:

TDIR = os.path.join(BASE_DIR, 'Templates')

有时候多余的路径处理可能会引入隐性问题,比如末尾的斜杠导致路径识别异常。

3. 检查Django版本是否一致

你之前用的是Django 2.1.5,重装后确认Anaconda环境里的Django版本:
打开Anaconda Prompt,激活你的环境后执行:

pip show django

如果版本不是2.1.5,可能存在细微的配置差异(虽然2.x版本的模板配置变化不大,但建议保持和之前一致的版本),可以重装指定版本:

pip install django==2.1.5

4. 检查文件夹权限

Windows下,Anaconda的Python进程可能没有读取D盘模板文件夹的权限:

  • 右键D:/IgnorazWork/SUDoc/SUDoc/Templates/文件夹,选择「属性」→「安全」
  • 确认当前登录用户有「读取」和「列出文件夹内容」的权限,如果没有,添加相应权限

5. 清除缓存并重启服务

开发环境下虽然默认禁用模板缓存,但新环境可能存在残留的缓存文件:

  • 删除项目根目录下所有__pycache__文件夹
  • 完全关闭Django开发服务器,再重新启动
  • 也可以尝试清除Anaconda环境的Python缓存(删除C:\ProgramData\Anaconda3\Lib\site-packages\django\__pycache__文件夹)

6. 确认模板加载顺序的优先级

Django的模板加载顺序是先搜索DIRS配置的路径,再搜索各app下的templates文件夹。如果你的错误提示里只显示了app目录的搜索记录,说明Django根本没尝试访问DIRS里的路径——这大概率是路径不存在或者权限问题,回到第一步仔细验证。

内容的提问来源于stack exchange,提问作者Ignramus0817

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:36:25