代码之家  ›  专栏  ›  技术社区  ›  Guillaume Vincent

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

  •  4
  • Guillaume Vincent  · 技术社区  · 11 年前

    由于Django 1.4(我认为)Django在我启动项目时为我的项目创建了一个文件夹。Django为我创建的任何应用程序添加一个文件夹( python管理.py启动应用程序 )在我的项目文件夹的同一级别。

    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 回复  |  直到 11 年前
        1
  •  3
  •   Jorge Leitao    11 年前

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

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

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

    ('app.app1', 'app1')
    

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

    所以,最终,你可以使用你想要的目录结构,只要应用程序的名称不冲突,并且你指向上的应用程序 已安装的应用程序 。正因为如此,如果没有任何特殊原因,你应该像Django那样把它们放在项目的根上。