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

当您需要开始分解初始的唯一文件(mods.py、urls.py、views.py)并处理几十个以上的实体时,我正在寻找有关如何做的建议.

推荐答案

每个"应用程序"都应该很小——一个可重用的实体加上几个相关的表.每个应用模型大约有5个正负2个表.我们的六个应用程序中,大多数都小于5个表.其中一个模型中没有表.

每个应用程序都应该被设计成一个可重用的概念.在我们的示例中,每个应用程序都是整个站点的一部分;可以单独删除和替换这些应用程序.

事实上,这就是我们的战略.随着我们需求的扩展和成熟,我们可以彼此独立地删除和替换应用程序.

应用程序相互依赖是可以接受的.但是,依赖关系必须限制在"模型"和"形式"等显而易见的东西上.此外,应用程序可以依赖于彼此URL中的名称.因此,您的命名URL必须具有类似于"application-view"的形式,这样reverse函数或{% url %}标记才能正确地找到它们.

每个应用程序都应该包含自己的批处理命令(通常通过django-admin脚本中的正式命令).

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

Django相关问答推荐

Django ORM多表一对多关系问题

Django mods.py我想要一个函数转到一个变量

我如何告诉Django如何恢复自定义迁移?

将所有守护用户对象权限从一个Django用户重新分配给另一个Django用户

Django Form标签和action属性

ModuleNotFoundError:没有名为guardian.shortcuts的模块

更改Django的创建时间字段

自定义身份验证 django

Django 从字段开始

如何测试某个日志(log)消息是否记录在 Django 测试用例中?

Django: Admin:在管理员中更改字段的小部件

django- nginx: [emerg] open() "/etc/nginx/proxy_params" 在 /etc/nginx/sites-enabled/myproject:11 中失败(2:没有这样的文件或目录)

is_valid() vs clean() Django 表单

Python Django 模板和测试变量是否为空或空字符串

对 django 的 Http Delete 请求返回 301

django post_save 更新信号

有日期时间±无穷大吗?

Python/Django - 避免在源代码中保存密码

如何将类、id、占位符属性添加到 django 模型表单中的字段

Django - 指定 Django 管理员应该使用哪个模型管理器