使用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。我初步猜测是浏览器缓存更新不及时导致的,由于问题不具有复现性,这个猜想也不能实践。

问题描述使用Django中的模板创建视图,当return一个html文件的时候,出现了TemplateDoesNotExist的错误解决方法对于这个错误,显然是Django没有找到Html文件导致的,我们应该逐个排查问题1. 是否注册了应用描述:Django提供了一个方法,当我们在Setting.py内的TEMPLATES配置项中设定'APP_DIRS': True时,Django将会在应用目录下的templates寻找文件注意点:如果我们使用这种方法来声明模板的位置,有一个前提是我们需要在I 看了好多大佬的 解决 方法,基本上都是配置settings.py文件,配来配去搞了好几个小时,依然没有 解决 问题。 后来发现,提示说的是 template s路径下找不到文件,那么我们就在项目里面自己建个文件夹,命名为 template s。 运行发现,还是有问题,还是找... 正如英文提示的错误原因这样,就是模板不存在的问题,或者说 django 默认读取的路径范围还没有到你的模板文件所在的范围(虽然这里有点绕,但后面会有详细说明)。 添加os.path.join(BASE_DIR,“ template s”)是有用的 我在巡查 解决 办法时,看到很多人说在 Django 的settings文件中在 TEMPLATE S配置给DIRS添加os.path.join(BASE_DIR,“ template s”)语句是无效的。 对!确实可以说是无效,但又确实有效。 无效:是因为你路径添加错了。         'BACKEND': ' django . template .backends. django . Django Template s',         'DIRS': [],         'APP_DIRS': True,         'OPTIONS': {             'con tex 'BACKEND': ' django . template .backends. django . Django Template s', 'DIRS': [os.path.join(BASE_DIR, ' template s')], 'APP_DIRS': True, 'OPTIONS': {
创建项目命令项目名不要使用汉字 数字开头创建应用命令一定要进入到项目里创建应用启动项目时(null): can't open file 'manage.py': [Errno 2] No such file or directory没有在 django 项目中启动迁移时No changes detected没有在配置文件中注册appDid you install mysqlclient?在项目同名的目录下的init.py中加入 import pymysql pymysql.install_as_MySQLdb(
'BACKEND': ' django . template .backends. django . Django Template s', 'DIRS': [os.path.join(BASE_DIR, ' template s')], #os.path.join(BASE_DIR, ' template s')没了这 django 是直接把模板路径当作了绝对路径,找不到html文件。 查看了项目setting文件后,看到了其中有关于 Template 的设置方法,其中包括一个‘DIRS’的选项, 解决 方案: 'DIRS': [os.path.join(BASE_DIR), ' template s'],..