2013-08-20 19 views
1

因爲Django 1.4(我認爲)當我開始一個項目時,django爲我的項目創建一個文件夾。 Django爲我創建的任何應用程序(與python manage.py startapp)添加一個文件夾在我的項目文件夾的同一級別。爲什麼Django將應用程序放在我的項目文件夾的同一級別上?

Project_name 
    |---project_name_dir/ 
    |---application_dir/ 
    `---manage.py 

我真的很喜歡下面的文件夾結構:

Project_name 
    |---project_name_dir/ 
    |  |---application_dir/ 
    |  |  |-- __init__.py 
    |  |  |-- models.py 
    |  |  |-- tests.py 
    |  |  `-- views.py 
    |  |-- __init__.py 
    |  |-- settings.py 
    |  |-- urls.py 
    |  |-- wsgi.py 
    |  |---templates/ 
    |  |  `---application_dir/ 
    |  `---static/ 
    |   |---css/ 
    |   |---font/ 
    |   |---img/ 
    |   `---js/ 
    |---deployment/ 
    |---documentation/ 
    |---config/ 
    `---manage.py 

因爲我有我的所有Django的文件(project_name_dir /)和其他目錄的非Django的文件的文件夾。

那麼爲什麼Django將應用程序放在我的項目文件夾的同一級別?

回答

1

在Django中,不考慮應用程序目錄的位置。 Django只使用應用程序的名稱。

因此,應用程序的位置基本上是程序員方便的事情。

這也是爲什麼兩個應用程序不應該具有相同的名稱的原因:即使在INSTALLED_APPS導入爲

('app.app1', 'app1') 

Django的只有最後一部分關注點之後,即app1

因此,最終,只要應用程序的名稱不會相互衝突,並且您指向INSTALLED_APPS上的應用程序,就可以使用所需的目錄結構。正因爲如此,如果沒有任何特殊的原因,你應該把它們放在項目的根上,就像Django一樣。

+0

如果位置應用程序是程序員方便的問題,我仍然不明白爲什麼Django會更改manage.py功能。感覺比1.3更復雜。 –

相關問題