Django1.6 settings.py设置找模板的顺序 (TEMPLATE_LOADERS )
Django1.6 settings.py设置找模板的顺序 (TEMPLATE_LOADERS )
清风徐不来 发表于4年前
Django1.6 settings.py设置找模板的顺序 (TEMPLATE_LOADERS )
  • 发表于 4年前
  • 阅读 677
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: Django1.6 settings.py设置找模板的顺序 (TEMPLATE_DIRS,TEMPLATE_LOADERS )

Django的setting中有关找模板的配置有如下两个:

TEMPLATE_LOADERS

TEMPLATE_DIRS

其中,TEMPLATE_LOADERS是一个string tuple,可选的配置有:

django.template.loaders.filesystem.Loaderdjango.template.loaders.app_directories.Loaderdjango.template.loaders.eggs.Loaderdjango.template.loaders.cached.Loader

前两个Loader默认是打开的,后两个默认是关闭的。

也就是说如果settings.py中不配TEMPLATE_LOADERS的话,相当于这样:

TEMPLATE_LOADERS = ('django.template.loaders.filesystem.Loader',
 'django.template.loaders.app_directories.Loader')

今天只讲讲这两个默认开启的,后续需要用到另外两个时再单独讲。

Django按照顺序依次使用Loader去找模板,一旦一个Loader找到了,就停止,如果没找到,再使用下一个 Loader 去找。每个Loader找模板的方式有所不同,下一段会详细介绍。但要记住,默认情况下,Django 是先使用filesystem.Loader 的,只有当 filesystem.Loader 找不到模板时,才会使用 app_directories.Loader


filesystem.Loader 找模板的方式:它会根据 TEMPLATE_DIRS 去找模板。TEMPLATE_DIRS  是一个“ iterable of filesystem directories”,filesystem.Loader 根据 这里指定的directories,去文件系统中寻找模板。同样是按顺序,找到即停止。默认的settings.py里是没有这个配置的,需要自己手动添加。1.6的Tutorial(Part 2)里给出的例子是:

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]


共有 人打赏支持
粉丝 12
博文 73
码字总数 33994
×
清风徐不来
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: