为什么Django将应用程序放在我的项目文件夹的同一级别?

时间:2013-08-20 14:43:31

标签: django directory-structure

因为Django 1.4(我认为)django在我启动项目时为我的项目创建了一个文件夹。 Django为我创建的任何应用程序(使用 python manage.py startapp )添加一个文件夹,位于我的项目文件夹的同一级别。

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 个答案:

答案 0 :(得分:1)

在Django中,不考虑应用程序目录的位置。 Django只使用应用程序的名称。

因此,应用程序的位置基本上是程序员方便的问题。

这也是为什么两个应用不应该具有相同名称的原因:即使它们是INSTALLED_APPS中导入的

('app.app1', 'app1')

Django只关注点后面的最后一部分,即app1

因此,最后,您可以使用所需的目录结构,只要应用程序的名称不会发生冲突,并指向INSTALLED_APPS上的应用程序。因此,如果没有任何特殊原因,你应该将它们放在项目的根目录上,就像Django一样。