社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

为什么Django项目是python包?

ironfroggy • 6 年前 • 937 次点击  

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

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

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

jonesy
Reply   •   2 楼
jonesy    15 年前

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

dpn
Reply   •   3 楼
dpn    15 年前

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

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

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

Carl Meyer
Reply   •   4 楼
Carl Meyer    15 年前

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