1
18
ignacio正确地指出,您提到的一些应用程序已经存在。你也应该看看像 Pinax 对于其他可插拔的应用程序,可以作为您自己项目的起点。 现在来问你一个问题:django项目是django应用程序的集合——你说得对。这个 Django book 更好的定义:
这个 django book defines a Django app AS:
但在最近的一节课上 Jacob Kaplan-Moss 我明白了(注意,我不是说那是他说的!!!!)那个 django应用程序的全部功能是封装常见的定义良好的行为 . 我也明白 有很多小程序是可以的 -总比拥有一个无所不能的单一应用要好——有些应用只是提供模板,有些只是模型,有些是模板、模型和视图的完整集合。 我的大多数项目都是面向公司内部的应用程序,在内部开发了一个通用的可插拔应用程序,它几乎是模板、css、javascript等的集合;将项目与一个通用的外观联系在一起。我在那个可插拔的应用程序中没有视图或模型。 我有一个可插拔的应用程序,也是内部开发的,它包含了在多个项目之间共享的一堆模型。这些模型表示几个不同的应用程序使用的公共数据库表,在每个应用程序中复制它们将 violate DRY . 一些应用程序的好例子:
以上这些都是解决一个逻辑问题。他们不想成为一个无所不能的解决方案…Gravatar应用程序不提供OpenID支持(还有一个用于OpenID的应用程序),而我的帮助台内部应用程序不提供身份验证(它使用默认的Django应用程序)。 django应用程序的一个坏例子是实现身份验证、openid支持、帮助台和项目跟踪的应用程序。为什么会很糟?因为现在如果你想重用你的认证应用,你必须从你的全方位应用中提取一些模型,一些视图,一些模板。如果你认为openid支持是你下一个项目必须的,你就必须仔细检查这个庞大应用程序的代码,找出哪些部分是相关的。 一个好的django应用程序提供了一组逻辑操作,并且做得很好。 |
Florent · 如何在Django中聚合多个字段? 1 年前 |
KWunsch · Django没有将pk引入模板 1 年前 |
Akshay mek · Vscode扩展建议不适用于某些文件夹 1 年前 |
Farid · 限制django每个客户的访问 2 年前 |
Blue · 从Django中的输入字段获取用户输入 2 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |