【轉】Django中Settings中Templates的路徑設置

原文鏈接

## mysite/mysite/settings.py
## mysite是項目名


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],           # templates
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

這個templates文件夾是放在project的目錄下面的,是項目中或者說項目中所有的應用公用的一些模板

## mysite/mysite/settings.py
## mysite/app1/   
## mysite是項目名字,app1是應用名字


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'app1/templates')],    ## templates
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

這個templates是在項目下面的應用app1文件夾里面,里面是app1這個應用用到的專用模板。

總結來說說:BASE_DIR是指mysite項目的絕對路徑。

'DIRS': [os.path.join(BASE_DIR, 'templates')] 是指到 BASE_DIR/templates文件夾中去取模板
'DIRS': [os.path.join(BASE_DIR, 'app1/templates')] 是指導 BASE_DIR/app1/templates文件夾中去取模板

一般來說,應該設置'DIRS': [os.path.join(BASE_DIR, 'templates')],公用的templates需要指定。
app1專用的templates,放在app1/templates下,可以不需指定。因為在app1.views中若要指定一個專用模板,只要直接寫‘app1_index.html’,Django服務器會在views文件所在的當前層(/app1)中找到templates,從而找到模板'app1_index.html'.

指定公用的templates路徑,所有apps都可以調用,方便快捷。
app專用的templates不需要指定,這樣當要復用這個app的時候,不需要考慮templates路徑問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容