** 軟件環(huán)境:** windows7+Python2.7.9+Django1.8.2
今天在學(xué)到Django模板的時(shí)候么抗,關(guān)于setting.py中配置模板路徑TEMPLATE_DIRS出現(xiàn)了一些問(wèn)題。
一歉秫、模板應(yīng)用實(shí)例
按照Django模板的指示,將在 HelloWorld 目錄底下創(chuàng)建 templates 目錄并建立 hello.html文件戳吝,整個(gè)目錄結(jié)構(gòu)如下:
然后向Django說(shuō)明模板文件的路徑坑质,修改HelloWorld/settings.py,添加以下代碼:
Template dir
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates').replace('\','/'),
)
二跃脊、模板路徑問(wèn)題
然后運(yùn)行命令:
python manage.py runserver
再訪問(wèn) http://127.0.0.1:8000/hello/ ,可以看到頁(yè)面:
** 注意:** 根據(jù)錯(cuò)誤提示信息,是加載templates的時(shí)候出現(xiàn)錯(cuò)誤苛吱,直接去D:\study\Python2.7\lib\site-packages\django\contrib\admin\templates\hello.html找模板了匾乓。
三、解決思路:
1 我把hello.html文件復(fù)制到D:\study\Python2.7\lib\site-packages\django\contrib\admin\templates\目錄下又谋,再訪問(wèn) http://127.0.0.1:8000/hello/ ,可以看到頁(yè)面:
這個(gè)結(jié)果讓我明白問(wèn)題在于* 模板路徑TEMPLATE_DIRS * 拼缝。娱局。
2 將templates文件夾放在E:\data_workspace\HelloWorld\HelloWorld目錄下。
然后訪問(wèn)http://127.0.0.1:8000/hello/, 問(wèn)題依然存在咧七。
從上面可以看出衰齐,Template Loader沒有查找HelloWorld目錄。這說(shuō)明HelloWold沒有映射到Django中继阻。
3 修改HelloWorld/settings.py耻涛,添加以下代碼:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'HelloWorld',
)
4 然后訪問(wèn)http://127.0.0.1:8000/hello/ ,問(wèn)題解決瘟檩,理解了模板的絕對(duì)路徑抹缕。
四、其他問(wèn)題
** 絕對(duì)路徑 **
在windows下也可以設(shè)置成絕對(duì)路徑墨辛,將TEMPLATE_DIRS路徑設(shè)置為:
TEMPLATE_DIRS = ( ' E:\data_workspace\HelloWorld\HelloWorld\templates ',)
這種情況會(huì)出錯(cuò)卓研。
解決方案:
Windows用戶必須使用斜杠而不是反斜杠,所以只要需要改為即可
TEMPLATE_DIRS = ( ' E:/data_workspace/HelloWorld/HelloWorld/templates ',)