设计大型django项目的最佳方式是什么?这些教程提供了设置应用程序、模型和视图的简单说明,但关于应用程序和项目应如何分解、典型项目中应用程序之间允许/必要的共享程度(显然这在很大程度上取决于项目)以及通用模板应如何/在何处保存的信息较少.

关于为什么某个项目的布局比另一个更好,有没有人给出过例子、建议和explanations条建议?我对大量单元测试(实际代码库大小的2-5倍)和字符串外部化/模板的结合特别感兴趣.

推荐答案

主要指导原则类似于任何其他大型代码项目.应用程序应该解决单一的、明确定义的责任."应用程序"这个名称用词不当;Django应用程序应该更多地被认为是可重用的组件,可以插入到一起来创建一个真正的应用程序.每个应用程序的测试都应该包含在该应用程序中.应用程序应该尽可能地彼此解耦,但显然会有依赖关系,所以目标应该是保持依赖关系图尽可能简单和合理.

我更喜欢将一个项目的所有模板保存在一个项目范围的模板目录下,每个应用程序都有一个子目录(在Django中, for each 应用程序使用模板子目录是一个非常强大的约定,因为它避免了应用程序之间的模板名称冲突).使用单个项目范围的模板目录的原因是,模板、模板继承树和块名称可能非常特定于项目,因此很难提供可以插入任何项目的"默认"应用程序模板.已经有一些人try 为基本站点范围的模板和它们定义的块确定标准命名约定,但我还没有看到一个标准出现(他们在Pinax岁时做事情的方式可能是我们最接近标准的方式).

再说"字符串外部化",如果您指的是i18n和l10n,Django对此和它放置.po文件的标准位置有很强的支持-判断docs.

Django相关问答推荐

DRF中没有参数的视图的警告-壮观

Django为什么我的post.count_view递增2?

身份验证有效,但登录无效.一直卡在pending

Django 按月分组并按月显示在模板中

如何在视图中的 Django 重定向末尾附加字符串?

如何在 createsuperuser 中实例化表

Django:使用相同的外键在不同的应用程序中 Select 多个列

Django ORM 和锁定表

Django 相当于 COUNT 和 GROUP BY

将 XML 从 URL 解析为 python 对象

创建新内容类型时出错.请确保在try 单独迁移应用程序之前迁移内容类型

使用 Gunicorn 运行 Django - 最佳实践

django 模板 if 或语句

Django 不调用模型清理方法

Django - 来自 QuerySet 的唯一列表

UnicodeEncodeError:ascii编解码器无法编码字符

Django manage.py:在其依赖之前应用迁移

从 django/python 中的 request.POST 检索列表项

您如何在本地针对 OpenID 进行开发

如何更改 ModelForm 中所有 Django 日期字段的默认小部件?