背景
Python版本:3.7
Django版本:1.8
这里做了一个简略的备忘概述,推荐阅读参考链接.
加载顺序
在Django中,App首先访问的templates是在setting中设置的DIRS路径.之后,如果DIRS文件夹中找不到指定文件的话,那么就会去App所在的文件夹中去查找指定文件(这个是Django默认的行为).
如果指定DIRS路径下没有指定名称的文件,而在大于一个的APP中的templates中存在相同的文件执行会是这样
但是如果在app的views中设置如下(指定文件夹),那么去查找的就是一个在settings中设置的DIRS文件夹下的test.html,如若找不到,会直接报错.而不会再去APP中去寻找test.html.
# 设置就像这样
def test(request):
return render(request,r'test/test.html') //这里设置的是绝对路径
基于以上Django的特性,我觉得可能是比较合适的命名方式是.公用模板放在DIRS设置的路径中.而APP独立的模板文件(假设是app_file.html)放在app/templates/app_file.html中.这样做的好处是模块化.(app模板的文件命名是app_model_name.html)
# 设置就像这样
def test(request):
return render(request,r'app_file.html')