新Django 1.4项目结构的用例?
我猜这是最终答案的后续问题,似乎是“没有人知道Django为什么改变了项目结构”——这似乎有点不令人满意 我们正在启动一个新的Django项目,目前我们正在遵循以下所述的基本结构: 但我认为我们也在期待一个多开发者的环境,它包含了大量独立的应用程序和通用的项目级组件,因此我认为将项目和应用程序路径分开似乎更为清晰新Django 1.4项目结构的用例?,django,project-structure,Django,Project Structure,我猜这是最终答案的后续问题,似乎是“没有人知道Django为什么改变了项目结构”——这似乎有点不令人满意 我们正在启动一个新的Django项目,目前我们正在遵循以下所述的基本结构: 但我认为我们也在期待一个多开发者的环境,它包含了大量独立的应用程序和通用的项目级组件,因此我认为将项目和应用程序路径分开似乎更为清晰 ├── project │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── apps │ ├── app1 │ └─
├── project
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── apps
│ ├── app1
│ └── app2
├── libs
│ ├── lib1
│ └── lib2
└── manage.py
不过,很难想出任何具体的、非文体的理由来解释这一点。(在此之前,我主要只从事单一应用程序项目,因此我可能会遗漏一些东西。)
我的主要动机是Django1.4似乎正朝着后一个方向发展。我假设有一些基本原理或预期的用例促使了这一变化,但我只看到了关于它可能是什么的猜测
问题:
from projectname.appname.models import MyModel
相反,您导入它们的方式与导入通过python包安装的应用程序的方式相同├── project
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── app1
├── app2
├── locale
│ ├── en
│ └── de
└── manage.py
from projectname.appname.models import MyModel
相反,您导入它们的方式与导入通过python包安装的应用程序的方式相同├── project
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── app1
├── app2
├── locale
│ ├── en
│ └── de
└── manage.py
我将之前的回复标记为答案,但我在IRC档案中发现了这篇博文,其中似乎有一些额外的信息 据我了解,要点是:
- 在开发时,
隐式设置manage.py
以查看项目级代码,其结果是PYTHONPATH
适用于项目内部定义的应用程序import myapp
- 部署时,通常不运行
,因此必须说manage.py
,因此如果不知道这一点,部署时就会出现问题import myproject.myapp
- “标准”修复方法是将项目添加到
,但这会导致双重导入(PYTHONPATH
和myapp
),这会在信号等方面产生奇怪的行为myproject.myapp
因此,1.4项目结构似乎主要是为了消除开发人员依赖
manage.py
的奇怪效果的可能性,我将早期的响应标记为答案,但我在IRC档案中看到了这篇博文,似乎有一些额外的信息
据我了解,要点是:
- 在开发时,
隐式设置manage.py
以查看项目级代码,其结果是PYTHONPATH
适用于项目内部定义的应用程序import myapp
- 部署时,通常不运行
,因此必须说manage.py
,因此如果不知道这一点,部署时就会出现问题import myproject.myapp
- “标准”修复方法是将项目添加到
,但这会导致双重导入(PYTHONPATH
和myapp
),这会在信号等方面产生奇怪的行为myproject.myapp
manage.py
的奇怪效果的可能性