2013-11-28 78 views
0

經過幾個月的Rails,我試圖學習Django這次。 以下目錄結構對我來說似乎效率低下。例如,如果您製作poll應用程序,則結構將如此。瞭解Django的目錄結構

mainproject/polls/templates/polls

爲什麼它不能代替

mainproject/polls/templates/

對於我來說,它已經成爲

my-django-projects/blog/blog/templates/blog/

第一blog =項目名稱,第二blog =應用程序名稱,第三blog =目錄中的模板文件夾。

這是一個合理的結構?

回答

0

沒有問題與結構mainproject/templates/,如果你只爲你的項目在您的應用,繼續用這種形式。

另一種方式(mainproject/polls/templates/polls/)主要用於當您計劃獨立於您的項目開發應用程序時,因此您將在其他項目中使用(可能由其他人)使用該應用程序,因此最好留下他們的項目幾個模板來查看您的應用程序是如何工作的,然後通過自定義您的應用程序模板來滿足他們的需求,在項目中創建自己的模板。

重複的應用程序的名稱聽起來應該是多餘的,但也有它的一個原因,Django的搜索模板文件中template目錄應用程序和項目,請參閱以下結構:

mainproject 
|-- poll 
| |-- templates 
|  |-- index.html 
| 
|-- blog 
    |-- templates 
     |-- index.html 

當Django試圖負載index.html它會選擇名字匹配,所以模板可能無法正確顯示所請求的應用程序。然後一個辦法,以確保加載正確的模板創建另一個目錄和方便使用的名稱的應用程序,以這樣的方式

mainproject 
|-- poll 
| |-- templates 
|  |-- poll 
|   |-- index.html 
| 
|-- blog 
    |-- templates 
     |-- blog 
      |-- index.html 

所以最後消除歧義,因爲你需要指定'blog/index.html'加載博客的index.html模板