102 我已经为此进行了搜索,但是在Django定义为“应用程序”方面仍然遇到麻烦。 我是否应该为站点中的每个功能创建一个新应用,即使该应用使用了主项目中的模型? 你们对何时拆分新应用程序以及何时将功能与“主项目”或其他应用程序保持在一起有很好的经验法则吗? python django — 霍坎 source
43 詹姆斯·本内特(James Bennett)提供了一系列精彩的幻灯片,介绍了如何在Django中组织可重复使用的应用程序。 — 安蒂·拉西宁(Antti Rasinen) source 1 这是否意味着,如果我创建子模型,则必须始终在同一应用程序中?由于我不能轻易地将其放到另一个项目中而不带来两个“应用程序” — Lionel
18 我更喜欢将Django应用程序视为可重用的模块或组件,而不是“应用程序”。 这有助于我将某些功能相互封装和解耦,如果我决定与整个社区共享特定的“应用”,则可以提高可重用性,并具有可维护性。 我的一般方法是将特定功能或功能集存储到“应用程序”中,就像我要公开发布它们一样。这里最困难的部分是弄清楚每个存储桶有多大。 我使用的一个好技巧是想象如果我的应用程序公开发布后将如何使用。这通常鼓励我缩水缩水,更清楚地定义其“目的”。 — 垃圾邮件 source
16 这是2008年9月6日更新的演示文稿。 DjangoCon 2008:可重用应用@ 7:53 幻灯片:Reusable_apps.pdf 取自幻灯片 这应该是它自己的应用程序吗? 它与应用程序的关注点完全无关吗? 它与我正在做的其他事情正交吗? 我在其他站点上是否需要类似的功能? 如果其中任何一个是“是”?然后最好将其分解为一个单独的应用程序。 — o source 我看到的幻灯片没有包含有关“应用程序焦点”的第一个问题。 — 约翰尼 @johnny它位于99的幻灯片31。– — Yeo
4 我在网上发现的这个问题的两个最佳答案是: 其他答案中也提到了可重复使用的应用程序对话(幻灯片)(视频)。Bennett是Django的作者和撰稿人,他定期发布供他人使用的应用程序,并对许多小型应用程序有很强的见解。 Doordash的《面向Django的技巧》给出了相反的建议,并表示在从许多单独的应用程序开始后,他们迁移到了一个应用程序。他们在应用之间的迁移依赖关系图中遇到了问题。 两种消息来源都同意您在以下情况下应创建一个单独的应用程序: 如果您打算在另一个Django项目中重用您的应用程序(尤其是如果您打算将其发布以供其他人重用)。 该应用程序与另一个应用程序之间的依赖关系很少或没有。在这里,您可能可以想象将来有一个应用程序将作为其自己的微服务运行。 — 乔纳森·伯格 source
1 一个“应用程序”可能有很多不同的东西,这一切真的都让人联想到。例如,假设您正在构建博客。您的应用程序可以是整个博客,也可以有一个“管理员”应用程序,一个用于所有公共视图的“站点”应用程序,一个“ rss”应用程序,一个“服务”应用程序,以便开发人员可以在其博客中与该博客进行交互自己的方式等 我个人将使博客本身成为该应用程序,并扩展其中的功能。然后可以很轻松地在其他网站中重复使用该博客。 Django的优点在于,它将目录树中任何级别的所有models.py文件都识别为包含Django模型的文件。因此,将功能分解为“应用程序”本身中较小的“子应用程序”不会带来任何困难。 — 柳树 source