在django中拆分大型应用程序

时间:2015-03-17 09:20:35

标签: django django-models

我的应用程序越来越大,作为单个应用程序做了太多事情,所以我想把它分成2或3个“子应用程序”

问题在于,有十几种模型相互关联(关键词,许多地方等)。

我已经阅读了很多次应用程序应该是自我一致的,所以,是否有任何最佳实践可以将一个大型应用程序分成几个相互关联的应用程序?

- >从其他应用程序导入模型有多糟糕?

1 个答案:

答案 0 :(得分:2)

我没有听说过最佳实践解决方案,但这是我通常会做的事情,而且我会分开很多应用程序:

第0步 - 什么时候应用“太大了”?:

应用应该是(独立的)逻辑单元。独立实际上是误导,当然你可以有像django.conrib.auth这样的依赖,你应该拥有的是交叉依赖。它们最终将导致循环进口。话虽这么说,你的应用程序可以变得非常大,完全没问题。 如果您在组织代码时遇到问题,我可能会提醒您每个模块都可以构建为一个包。您只需将models.py分为models/__init__.pymodels/LOGICAL_UNITS.py

你应该拆分应用程序的唯一原因是因为你可以,而不是因为你想要;)

第1步 - 概述

使用django_extensions'图表打印功能。

这应该会给你一个很好的概述,可以帮助你找到所谓的“社区”。具有强交叉依赖性的模型组。 这些社区通常都是一个非常好的应用程序。

第2步 - 命名:

如果你找不到新申请的名字,可能不是一个。