Django找不到模板(templates)文件的解决办法

看完这篇文章知道原理后,发现我的项目根目录下templates里面有一个空的index.html模版,导致和index文件下的templates文件夹里面模版名重复了,所以调用了根目录下的模版

 Django找不到模板(templates)文件的解决办法

 

Django找不到模板(templates)文件的解决办法

 

 

 

Djang遇到找不到模板HTML文件的的问题,网上找到的很多解决办法都是修改

把settings.py->"templates"->"DIRS"修改为

'DIRS': [os.path.join(BASE_DIR,"templates")]
但是我发现这里在新建项目时早就自动配置好了的,根本不需要改

'DIRS': [BASE_DIR / 'templates']
最后在官方文档中找到答案

首先,在你的 polls 目录里创建一个 templates 目录。Django 将会在这个目录里查找模板文件。

你项目的 TEMPLATES 配置项描述了 Django 如何载入和渲染模板。默认的设置文件设置了 DjangoTemplates 后端,并将 APP_DIRS 设置成了 True。这一选项将会让 DjangoTemplates 在每个 INSTALLED_APPS 文件夹中寻找 "templates" 子目录。这就是为什么尽管我们没有像在第二部分中那样修改 DIRS 设置,Django 也能正确找到 polls 的模板位置的原因。

在你刚刚创建的 templates 目录里,再创建一个目录 polls,然后在其中新建一个文件 index.html 。换句话说,你的模板文件的路径应该是 polls/templates/polls/index.html 。因为``app_directories`` 模板加载器是通过上述描述的方法运行的,所以 Django 可以引用到 polls/index.html 这一模板了。
————————————————

我的APP中已经建立了templates文件夹,也在其中添加了APP同名的子文件夹,唯一没有做的就是把APP添加到settings.py的 INSTALLED_APPS 因为我一开始误以为这个只是和models生成数据表有关,而我的APP中并不需要models,也不需要生成数据表,所以就没有把APP添加到INSTALLED_APPS 。

最后添加APP到INSTALLED_APPS ,终于找到模板了

上一篇:把Ubuntu系统自带的源修改为国内的源,中科大源链接:https://mirrors.ustc.edu.cn/repogen/


下一篇:python+django开发api接口问题