【问题标题】:Guide in organizing large Django projects [closed]组织大型 Django 项目的指南 [关闭]
【发布时间】:2010-10-06 12:10:05
【问题描述】:

任何人都可以推荐一篇很好的指南/教程/文章,其中包含有关如何组织和划分大型 Django 项目的提示/指南?

当您需要开始分解初始唯一文件(models.py、urls.py、views.py)并使用几十个实体时,我正在寻找如何做的建议。

【问题讨论】:

    标签: python django projects


    【解决方案1】:

    每个“应用程序”都应该很小——一个可重用的实体加上几个关联的表。每个应用程序模型大约有 5 个加/减 2 个表。我们的大多数应用程序都小于 5 个表。一个模型中有零个表。

    每个应用程序都应设计为一个可重用的概念。在我们的例子中,每个应用程序都是整个站点的一部分;应用程序可以单独删除和替换。

    确实,这就是我们的策略。随着我们的需求扩展和成熟,我们可以相互独立地删除和替换应用程序。

    可以让应用程序相互依赖。但是,依赖必须限于“模型”和“表单”等明显的东西。此外,应用程序可以依赖于彼此 URL 中的名称。因此,您命名的 URL 必须具有类似“application-view”的形式,以便 reverse 函数或 {% url %} 标记可以正确找到它们。

    每个应用程序都应该包含它自己的批处理命令(通常通过django-admin 脚本可以找到的正式命令。

    最后,任何比共享的简单模型或表单更复杂的东西可能不属于任何一个应用程序,但需要是一个单独的共享库。例如,我们使用XLRD,但将它的一部分包装在我们自己的类中,因此它更像是内置的csv 模块。这个 XLRD 包装器不是任何应用程序的适当部分,因为它是一个单独的模块,在 Django 应用程序之外。

    【讨论】:

      【解决方案2】:

      我发现查看大型开源 Django 项目并记下该项目的工作方式会很有帮助。 Django 的网站有一个很好的开源项目列表:

      http://code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects

      Google 也是如此(尽管其中大部分是较小的插件模板标签和中间件:

      http://code.google.com/hosting/search?q=label:django

      当然,仅仅因为一个项目以一种方式进行并不意味着这种方式就是正确的方式(或错误的方式)。其中一些项目比其他项目更成功。

      最后,真正了解哪些有效哪些无效的唯一方法就是亲自尝试。除非您亲自尝试,否则世界上所有的提示和提示都不会有帮助,但它们可能会帮助您朝着正确的方向开始。

      【讨论】:

      • 同意...我从研究 pinax 和 satchmo 中学到的东西非常宝贵
      猜你喜欢
      • 2011-09-13
      • 1970-01-01
      • 2011-04-16
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多