题
任何人都可以推荐一个很好的指南/教程/在如何组织和划分一个大型Django项目的提示/准则的文章?
我在寻找的,当你需要开始进行因式分解初始独有的文件(models.py,urls.py,views.py)做什么建议和具有比几十实体更合作。
解决方案
每个“应用”应是小 - 一个单一的实体可重复使用的外加几关联的表。我们有大约5加/减每个应用模型2个表。我们的大多数半打应用程序比5桌小。一个人在模型零个表。
每个应用程序应被设计成一个可重复使用的概念。在我们的例子中,每个应用程序是一块整体网站的;应用程序可以被移除并单独更换。
事实上,这就是我们的战略。正如我们的要求扩大和成熟,我们可以删除,并且彼此独立地替换应用程序。
没关系有应用程序互相依赖。然而,依赖需要被限制于明显的事情,如“模型”和“形式”。此外,应用程序可以依赖于彼此的URL的名称。因此,你的名为URL的必须有像“应用视图”,所以reverse
功能或{% url %}
标签可以准确地找到他们的一种形式。
每个应用程序应包含它自己的批处理命令(通常是通过可以由django-admin
脚本中找到一个正式的命令。
最后,任何比一个简单的模型更复杂或形成分享的内容可能不属于任何应用程序,但需要单独的共享库。例如,我们使用 XLRD ,但包裹它的一部分在我们自己的类,所以它更像内置csv
模块。此包装为XLRD不是任何一个应用程序的适当部分,它是一个单独的模块,所述Django应用程序外。
其他提示
我发现它有助于看看大开源的Django项目,并注意到该项目是怎么做的。 Django的网站有开源项目的一个很好的列表:
http://code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects
一样谷歌(虽然大部分都是小插件模板标签和中间件:
http://code.google.com/hosting/search?q=标签:django的
当然,仅仅因为一个项目做的一种方式,并不意味着这种方式是正确的方式(或错误的方式)。其中有些项目比其他人更成功。
在最后,真正了解什么可行,不工作的唯一方法是尝试一下自己。在世界上所有的提示和暗示不会帮助,除非你自己试试它了,但他们可能会帮助您在正确的方向开始。