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