使用Django创建首页时遭遇TemplateDoesNotExist错误求助
Django TemplateDoesNotExist 错误排查方案
1. 检查模板目录配置
- 打开项目根目录的
settings.py,找到TEMPLATES配置块,确保DIRS指向你的模板根目录:
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', ], }, }, ]
- 确保
APP_DIRS设为True,这会让Django自动扫描已注册app下的templates目录
2. 核对模板文件存放路径
- 若模板放在自定义app内,路径必须是
你的app名称/templates/你的app名称/index.html(比如app叫blog,路径就是blog/templates/blog/index.html),Django默认会识别这种app专属模板结构 - 若模板放在项目根目录的
templates下,直接存为templates/index.html即可,但要保证settings.py的DIRS已包含这个目录
3. 检查视图的模板调用
- 视图里使用
render函数时,模板名称要和实际路径匹配:- 根目录templates下的文件:
return render(request, 'index.html') - app内的模板文件:
return render(request, 'blog/index.html')
- 根目录templates下的文件:
- 注意拼写和大小写,Django对路径大小写敏感
4. 确认自定义app已注册
- 在
settings.py的INSTALLED_APPS列表里添加你的自定义app,比如:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', # 这里添加你的自定义app名称 ]
5. 清理缓存并重启服务
- 运行命令清理Django缓存:
python manage.py clearcache - 重启开发服务器,确保新配置生效
内容的提问来源于stack exchange,提问作者Dokkaebi
相关产品推荐
相关产品推荐

