Django可重用的应用程序和命名空间

时间:2015-09-09 05:52:04

标签: python django

我的团队正在开始一个新的Django项目。 我们想在新项目中开始使用git子模块。我们在之前的项目中使用了子模块,它对我们很有用。我们的想法是将我们经常在项目中使用的应用程序作为git子模块放在一个公共文件夹中。

假设我们的git位置是git@mygit.git:repo-django

我们在项目的根目录中有应用程序(repo-django),如下所示:

/myproject
    repo-django/
        app1/
            models.py
        app2/
            models.py
        app3/
            models.py

团队中有一些关于如何构建软件包的争论,我找不到任何关于这方面最佳选择的指南。

是否应将“ repo-django ”添加为类路径,以便模块的导入可以相对于repo-django的根目录,还是repo-django构成类路径的一部分?

以模型为例:

from repo-django.app1.models import MyModel

我们可以将应用程序添加到django中,如下所示:

INSTALLED_APPS += (
  'repo-django.app1',
  'repo-django.app2',
  'repo-django.app3',
)

或者如果我们通过以下方式添加repo-django:

sys.path.append("repo-django")

然后我们可以使用这样的模型

from app1.models import MyModel

...并将应用程序添加到django,如下所示:

INSTALLED_APPS += (
  'app1',
  'app2',
  'app3',
)

围绕命名空间的争论很大。一个阵营认为将所有可重复使用的应用程序放在名称空间中是一件好事,而另一个阵营认为应用程序的可移植性较差且过于依赖文件夹名称。

什么是最好的方法,我在哪里可以找到更多相关信息?

0 个答案:

没有答案