我已经开始搜索,但我仍然无法解释Django定义为"应用程序"的问题.
我是否应该为站点中的每个功能创建一个新的应用程序,即使它使用主项目中的模型?
你们有什么经验法则可以解决何时拆分新应用,何时将功能与"主项目"或其他应用保持在一起?
bla*_*pam 18
我更喜欢将Django应用程序视为可重用的模块或组件,而不是"应用程序".
这有助于我将某些功能彼此封装和分离,如果我决定与整个社区共享特定的"应用程序"和可维护性,则可以提高可重用性.
我的一般方法是将特定功能或功能集添加到"应用程序"中,就好像我要公开发布它们一样.这里的难点在于确定每个铲斗的大小.
我使用的一个好方法是想象如果我的应用程序是公开发布的,我将如何使用它们.这经常鼓励我缩小桶并更清楚地定义它的"目的".
Yeo*_*Yeo 12
以下是2008年9月6日的最新简报.
DjangoCon 2008:可重复使用的应用程序@ 7:53
取自幻灯片
这应该是它自己的应用吗?
- 它与应用程序的重点完全无关吗?
- 它与我正在做的其他事情正交吗?
- 我是否需要在其他网站上使用类似功能?
如果其中任何一个是"是"?然后最好将其分解为单独的应用程序.
小智 6
这个问题的最佳答案由 Andrew Godwin(Django 核心开发人员)给出:
\n在我看来,应用程序的主要目的是提供可重用组件的逻辑分离 - 具体来说,为模型/管理/等提供一流的命名空间。- 并提供一种简单的方法来转动 \xe2\x80\x9con\xe2\x80\x9d 或 \xe2\x80\x9coff\xe2\x80\x9d。
\n在某些方面,它\xe2\x80\x99是Django创建时的遗物——当时Python包装和模块还不太发达,你基本上必须有自己的解决方案来解决问题。也就是说,它\xe2\x80\x99s 仍然是 Django\xe2\x80\x99s 心理模型的核心部分,而且我认为 INSTALLED_APPS 仍然是比 Python\xe2\x80\x99s 入口点替代产品(其中使得禁用安装在环境中但您不想使用的软件包变得非常困难)。
\n您认为有什么具体内容可以与当今的应用程序概念脱钩吗?模型和管理员需要它来进行自动发现和唯一的命名空间前缀,因此\xe2\x80\x99s很难撤消,而我\xe2\x80\x99m很难想到你需要它的其他功能(事实上,如果你Want 只是一个库,您可以将其设为普通的 Python 库 - 不需要应用程序包装,除非您\xe2\x80\x99 正在传送模型、模板或管理代码 IIRC)
\n我在网上找到的这个问题的两个最佳答案是:
两个消息来源都同意您应该在以下情况下创建一个单独的应用程序:
归档时间: |
|
查看次数: |
27637 次 |
最近记录: |