django 在应用app下面template

本文记录了一次使用Django框架时遇到的模板加载问题及解决过程。作者在尝试加载自定义app下的模板文件时遇到了困难,经过排查发现是因为未将app添加到settings.py的INSTALLED_APPS中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做着玩的一个应用。使用django,按照惯例,创建项目后,又创建了一个app,考虑到每个app会有不同的布局,所以在每个app下面新建了一个templates,但是在应用的时候出现了问题。

 

在app下面新建了一个templates的文件夹,然后在这个下面又新建了一个app2的文件夹,在app2里面建了一个index.html 本来我想用他的。 按照惯例,引进各种需要的包以后,开始render

def text_base(request):
    return render(request, 'app2/index.html', {'data': 2})

但是出错了。总是说找不到模板。查看了一下堆栈:

TemplateDoesNotExist at /app2/index/

下面Template-loader postmortem:

Using loader django.template.loaders.app_directories.Loader:
/usr/local/lib/python2.7/dist-packages/django/contrib/auth/templates/app2/index.html (File does not exist)

原来他是默认的在django的目录下找,于是乎我把django的template拷贝到我的site目录下,然后设置了一后,出现了新的提示:

TemplateDoesNotExist at /app2/index/

Template-loader postmortem

Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/layout/templates/app2/index.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
/usr/local/lib/python2.7/dist-packages/django/contrib/auth/templates/app2/index.html (File does not exist)

 

原来django会在指定的templates下面找,如果找不到的话,再去默认的模板里面找。但是我的问题好像与模板无关。去查了查文档,原来是我们没有install app2 ,在setting.py 里面的INSTALLED_APPS 配置项下加上 ‘app2‘  问题就解决了。

 

我的理解是:django会根据安装的app去自己下面templates找,找不到,根据配置去自己设置的目录下找,如果再找不到就去django的templates目录下面找。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值