首页 > 其他 > 详细

django notes 三:Template 的查找

时间:2015-08-02 18:05:38      阅读:240      评论:0      收藏:0      [点我收藏+]

django 中有 2种 Template Loader

django.template.loaders.filesystem.Loader
django.template.loaders.app_directories.Loader

filesystem.Loader 会根据 settings 中  TEMPLATES 下配置的 DIRS  查找 template

TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
        ‘APP_DIRS‘: False,
        ‘OPTIONS‘: {
        },
    },
]

app_directories.Loader 顾名思义会到各个 app 下面的 templates 文件夹下去查找 template

 TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [],
        ‘APP_DIRS‘: True,
        ‘OPTIONS‘: {
        },
    },
]
APP_DIRS 为 True 表示启用 app_directories.Loader loader

通常把模板放到最外层和放到各个 app 下面都是一样的,公共的模板可以放在最外层,各个 app 相关的可以放到 app 下面,因为 app 是独立的,可能会被用到多个项目中。
在各个 app 下面的 templates 文件夹下通常会多加一层文件夹,并以该 app 的名字来命名,这主要是为了防止模板重名, 因为当启用 app_directories.Loader 时
django 会从 INSTALLED_APPS 中从上到下依次查找各个app下的模板文件, static 文件也是一样的。
INSTALLED_APPS = (
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘blog‘,
)

 

django notes 三:Template 的查找

原文:http://www.cnblogs.com/lesliefang/p/4696330.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!