Django中App的templates加载顺序

背景

  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')




参考

posted @ 2020-02-26 22:22  高坦的博客  阅读(687)  评论(0编辑  收藏  举报