Django1.6 settings.py设置找模板的顺序 (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')]


你可能感兴趣的:(Django1.6,TEMPLATE_DIRS)