2009-06-25 47 views
8

所以我有一個Django項目我剛剛創建了一個名爲「coolprojectsite」的目錄結構看起來如下:Django的目錄佈局的解釋

* media (dir) 
* mytemplates (dir) 
* * admin (dir) 
* * coolprojects (dir) 
* coolprojectsite (dir) 
* * coolproject (dir) 
* * * __init__.py 
* * * admin.py 
* * * models.py 
* * * tests.py 
* * * urls.py 
* * * views.py 
* * __init__.py 
* * settings.py 
* * urls.py 

所以,我有幾個問題。

1)coolprojectsite認爲是 '項目'

2)coolproject認爲是 '應用'

3) '媒體' 包含CSS,JavaScript文件等的規定,對他們的適當位置?它在項目之外。

4)'mytemplates'具有包含django標記(例如{%%})的特定文件,並且因爲我的urls.py指向它們而被訪問。將這些文件放在項目之外是否合適?如果我想包含一些任意的javascript文件(比如說jquery),我只需在urls.py中創建一個新條目(如果是的話,它應該是coolprojectsite中的還是coolproject中的),然後鏈接到該文件網址是什麼?

+0

問題。你會不會把媒體/和CSS等的webroot和所有其他波紋管? – tristanbailey 2010-12-28 08:36:26

回答

9
  1. 「項目」在Django中並不是一個真正有用的概念。 Django教程提到了它,但開發人員經常在郵件列表中提到他們希望他們沒有引入它。基本上,一個項目只是你的代碼的一個容器 - 但實際上代碼可以在Pythonpath的任何地方。

  2. 是的,只要它們全都添加到settings.py的INSTALLED_APPS中,您就可以擁有多個應用程序。

  3. 他們住在哪裏並不重要。你需要一些東西來爲它們服務 - 在開發過程中,可以使用內置服務器來完成,但是在生產中,你需要將Apache(或其他)直接指向文件。

  4. 沒關係。這是加載模板的視圖,並且只要在settings.py中正確設置了TEMPLATE_DIRS就可以了。不,絕對不是。如前所述,靜態資產位於媒體文件夾中,不會通過Django提供。

+6

就我個人而言,我確實發現「項目」是一個有用的概念。項目畢竟是我一直在做的 - 這是可交付成果。因此,我將靜態資產目錄和我的模板目錄保存在帶有設置文件,根URLconf的目錄中,通常是一些一次性項目特定的應用程序,將其全部置於版本控制之下並稱爲「項目」。我不認爲這有什麼問題。關鍵是要認識到在Django中對於某個目錄沒有什麼「魔力」,你可以安排很多東西,但是適合你的工作流程並使其工作。 – 2009-06-25 16:40:05