什么是最好的方式布局的大django项目?该教程提供简单的指示设置的应用程序、模型和看法,但有较少的信息关于如何应用程序和项目应当分解,有多少共享是可允许的/需要的应用程序之间在一个典型的项目(显然这是很大程度上取决于项目的)和如何/何在通用模板应当予以保留。

任何人都不会有的实例、建议和 解释 为什么一定项目布局是比另一个更好的?我特别感兴趣纳入大量的单元测试(2-5倍大小的实际代码的基础)和串外化/模板。

有帮助吗?

解决方案

主要的准则都是类似的任何其他大型代码的项目。应用程序应解决一个单一的、界定明确的责任。名为"应用"一词不当;Django应用程序应该被认为更为可重复使用的组件,可以插在一起,以创建一个真正的应用。测试每个应用程序内包含的应用程序。应用程序应当与每一个其它尽可能的,但显然将依赖关系,因此我们的目标应该是继续依赖图作为简单的和理智作为可能。

我喜欢让所有的模板项目下的单个项目范围的模板目录,有一子目录中的每个应用程序(采用一个模板子目录中每个程序是一个非常强《公约》在Django,因为它避免了模板的名字之间的碰撞应用程序).因为一个单一的项目范围的模板目录是这一模板、模板继承的树木和框名称可以是相当具体项目,因此很难提供"默认"应用程序模板,可以插入的任何项目。已经有一些尝试,以解决在标准命名约为基础的站点范围的模板块他们一定义,但是我还没有看到一个标准的出现而(他们做事的方式在 Pinax 可能是最接近我们有一个标准)。

重"串外部化",如果你的意思是i18n和l10n、Django有强有力的支持,而标准的地方在那里提出。po文件检查 文档.

其他提示

这页很好地解决我的一些问题: http://www.b-list.org/weblog/2006/sep/10/django-tips-laying-out-application/

具体而言:

  1. 定义定义模板的标签或过滤器,必须创建一个子目录应用程序的目录templatetags,它必须包含一个文件命名为__init__.py 因此,它可以进口为蟒蛇模块。
  2. 定义单元的测试,这将自动注意到通过决的测试框架,把它们放在一个模块被称为测试(这可以是一个文件命名为tests.py 或者一个名为检验)。测试框架还将找到的任何文档测试在那个模块,但是优选的地方,是的,当然,该文档字符串的类或功能的他们的设计进行测试。
  3. 提供定义SQL这将在以后立即执行安装应用程序,创建一个子目录sql内部应用程序的目录;文件名称应该是相同的名字模型,其表他们会操作;例如,如果你有一个应用程序的命名的博客包含模型名为入口,然后将文件sql/入境。sql内部应用程序的目录可以用来修改或插入数据的项目表,尽快为它已经建立。

注意有关tests.py 和试验(目录),也适用于模式,这有助于解决问题的方式具有许多测试(或模型)对于一个文件。

我仍然想要看到一些例子/建议的应用程序/项目打破,大django网站,运作良好。

Pinax项目 是建立在这个想法的小可重复使用的应用程序,这是很容易归入一个项目。他们使用的项目 云27 作为一个演示项目。

Django项目,我的工作(所谓贝西.这是预0.1,所以没有联系。) 试图按照Pinax模型和迄今为止它的工作作出相当好。

我现在的布局源自我希望有一个试验版本的网站。这意味着有两个项目为每一个网站,因为他们需要的不同的配置和部队,我将所有的应用程序的项目。

我已经创建了两个文件夹:$APP_ROOT/开发$APP_ROOT/prod.这些包含所有应用程序。使用源的控制(在我的情况git)我应用开发头修订,同时将应用在促使被锁定的产品标签。该模板也有自己的文件夹用相同的布局应用程序。

现在我能做到我所有的发展中开发的应用程序的文件夹和匹配的模板的文件夹。当我有些东西我很高兴,我的标签,修订和更新产品。

我真的很喜欢 兰德尔Degges' 后关于这个问题的。他离开了信息如何胶设置文件结合在一起,但我会有一个职位上,我将能够的链接,但现在,任何人都可以检查出来的 我的仓库 我在哪里包括一些方向的自述。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top