Py学习  »  Python

为什么Django项目是python包?

ironfroggy • 5 年前 • 512 次点击  

为什么它们不只是目录?任何好的建议都是尽可能多地保存在应用程序中,而不是将它们与项目结合起来。将应用程序导入为project.application的功能不鼓励这样做。为什么django-admin.py创建 __init__.py 完全?没有它这个项目是非常有用的。理由是什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30343
 
512 次点击  
文章 [ 4 ]  |  最新文章 5 年前
Julio Menendez
Reply   •   1 楼
Julio Menendez    14 年前

我认为您可以重用应用程序,但不需要将它们从最初创建它们的项目中移出。如果项目不是一个包,那么您需要将要重用的应用程序复制/移动到一个Python包中。因为项目本身就是一个适当的Python包,所以您可以重用其中的应用程序,而无需将应用程序移到其他位置。

jonesy
Reply   •   2 楼
jonesy    14 年前

据我所知,没有要求应用程序位于项目的名称空间内。只是他们在$pythonpath上。因此,它们可以被系统上共享相同pythonpath的任何其他代码使用。

dpn
Reply   •   3 楼
dpn    14 年前

我们有一个单独的项目,我们为其他项目“子类”。所以我们有其他的项目从主项目中导入东西。我想对于我们来说,它提供了包含所有其他应用程序的通用名称空间。

我们可以将所有应用程序都放在一个包中,与我猜的项目分开。我们的系统已经发展而不是计划好了。

所以我想我的答案是,它提供了一个好的根名称空间。(为了我们的需要):)

Carl Meyer
Reply   •   4 楼
Carl Meyer    14 年前

项目的核心是settings.py和根urls.py。这两个模块都是Python模块,因此它们需要以某种方式导入。你 可以 将项目目录直接放在python路径上,这样可以将它们作为顶级模块导入,但这可能是更糟糕的做法。最好让项目成为一个包,并且设置和URL是其中的模块。