问题描述
使用Django中的模板创建视图,当return一个html文件的时候,出现了TemplateDoesNotExist的错误
解决方法
对于这个错误,显然是Django没有找到Html文件导致的,我们应该逐个排查问题
1. 是否注册了应用
描述:Django提供了一个方法,当我们在Setting.py
内的TEMPLATES
配置项中设定'APP_DIRS': True
时,Django将会在应用目录下的templates
寻找文件
注意点:如果我们使用这种方法来声明模板的位置,有一个前提是我们需要在INSTALLED_APPS
中注册了这个应用Django才能顺利找到
2.在DIRS中声明
描述:没有使用1中的方法,我们可以在DIRS中声明模板的位置,声明方法如下 。声明完毕之后Django将会按照DIRS中的顺序依次查找文件
3.检查一下应用子文件夹名称templates是否拼写错误
4.换一个浏览器或者清除一下浏览器缓存试一试
描述:这个方法是笔者想出来但没有实践的,因为我出现TemplateDoesNotExist的问题时,即在Setting中声明了应用,也创建了templates文件夹并且文件引用的都很正确。我通过在setting.py中添加import语句导入应用来解决的问题(但是Setting.py不需要import应用的包)当然在此之后我把import删除没有出现TemplateDoesNotExist。我初步猜测是浏览器缓存更新不及时导致的,由于问题不具有复现性,这个猜想也不能实践。