django模板路徑

** 軟件環境:** windows7+Python2.7.9+Django1.8.2
今天在學到Django模板的時候,關于setting.py中配置模板路徑TEMPLATE_DIRS出現了一些問題。

一、模板應用實例

按照Django模板的指示,將在 HelloWorld 目錄底下創建 templates 目錄并建立 hello.html文件,整個目錄結構如下:

templates01.png

然后向Django說明模板文件的路徑,修改HelloWorld/settings.py,添加以下代碼:

Template dir

TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates').replace('\','/'),
)

二、模板路徑問題

然后運行命令:

python manage.py runserver

再訪問 http://127.0.0.1:8000/hello/ ,可以看到頁面:

templates02.png

** 注意:** 根據錯誤提示信息,是加載templates的時候出現錯誤,直接去D:\study\Python2.7\lib\site-packages\django\contrib\admin\templates\hello.html找模板了。

三、解決思路:

1 我把hello.html文件復制到D:\study\Python2.7\lib\site-packages\django\contrib\admin\templates\目錄下,再訪問 http://127.0.0.1:8000/hello/ ,可以看到頁面:

templates03.png

這個結果讓我明白問題在于* 模板路徑TEMPLATE_DIRS * 。。

2 將templates文件夾放在E:\data_workspace\HelloWorld\HelloWorld目錄下。

templates04.png

然后訪問http://127.0.0.1:8000/hello/, 問題依然存在。

templates05.png

從上面可以看出,Template Loader沒有查找HelloWorld目錄。這說明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 然后訪問http://127.0.0.1:8000/hello/ ,問題解決,理解了模板的絕對路徑。

四、其他問題

** 絕對路徑 **
在windows下也可以設置成絕對路徑,將TEMPLATE_DIRS路徑設置為:

TEMPLATE_DIRS = ( ' E:\data_workspace\HelloWorld\HelloWorld\templates ',)

這種情況會出錯。
解決方案:
Windows用戶必須使用斜杠而不是反斜杠,所以只要需要改為即可

TEMPLATE_DIRS = ( ' E:/data_workspace/HelloWorld/HelloWorld/templates ',)

參考鏈接:

Django documentation

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

推薦閱讀更多精彩內容