Django新手求助:TemplateDoesNotExist报错,模板无法找到
解决Django「TemplateDoesNotExist」报错的方案
1. 核对templates文件夹位置
确保templates文件夹与manage.py处于同一层级(项目根目录),而非嵌套在app目录或其他子目录中。
2. 替换TEMPLATES的DIRS为绝对路径
在settings.py中,将DIRS配置改为基于项目根目录的绝对路径,避免相对路径引发的定位问题:
import os TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(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', ], }, }, ]
BASE_DIR是Django默认定义的项目根目录变量,用它拼接路径能保证定位准确。
3. 检查INSTALLED_APPS(若模板在app内)
如果templates文件夹属于某个app(例如your_app/templates),需确认该app已添加到settings.py的INSTALLED_APPS列表:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'your_app_name', # 替换为你的实际app名称 ]
4. 重启开发服务器
修改配置后,关闭当前运行的Django服务器,重新执行python manage.py runserver加载新配置。
5. 再次验证模板文件
确认templates文件夹内确实存在main.html,且文件名大小写完全匹配(区分大小写的系统中,Main.html与main.html会被视为不同文件)。
内容的提问来源于stack exchange,提问作者Harshali Deshmukh
相关产品推荐
相关产品推荐

