Django找不到模板(templates)檔案的解決辦法
看完這篇文章知道原理後,發現我的專案根目錄下templates裡面有一個空的index.html模版,導致和index檔案下的templates資料夾裡面模版名重複了,所以呼叫了根目錄下的模版
Djang遇到找不到模板HTML檔案的的問題,網上找到的很多解決辦法都是修改
把settings.py->"templates"->"DIRS"修改為
'DIRS': [os.path.join(BASE_DIR,"templates")]
但是我發現這裡在新建專案時早就自動配置好了的,根本不需要改
'DIRS': [BASE_DIR / 'templates']
最後在官方文件中找到答案
首先,在你的 polls 目錄裡建立一個 templates 目錄。Django 將會在這個目錄裡查詢模板檔案。
你專案的 TEMPLATES 配置項描述了 Django 如何載入和渲染模板。預設的設定檔案設定了 DjangoTemplates 後端,並將 APP_DIRS 設定成了 True。這一選項將會讓 DjangoTemplates 在每個 INSTALLED_APPS 資料夾中尋找 "templates" 子目錄。這就是為什麼儘管我們沒有像在第二部分中那樣修改 DIRS 設定,Django 也能正確找到 polls 的模板位置的原因。
在你剛剛建立的 templates 目錄裡,再建立一個目錄 polls,然後在其中新建一個檔案 index.html 。換句話說,你的模板檔案的路徑應該是 polls/templates/polls/index.html 。因為``app_directories`` 模板載入器是通過上述描述的方法執行的,所以 Django 可以引用到 polls/index.html 這一模板了。
————————————————
我的APP中已經建立了templates資料夾,也在其中添加了APP同名的子資料夾,唯一沒有做的就是把APP新增到settings.py的 INSTALLED_APPS 因為我一開始誤以為這個只是和models生成資料表有關,而我的APP中並不需要models,也不需要生成資料表,所以就沒有把APP新增到INSTALLED_APPS 。
最後新增APP到INSTALLED_APPS ,終於找到模板了