我想从 Rails 转到 Django,开阔思路,一个问题在我脑海中浮现。
我的 Rails 应用程序一团糟,因为我的基于爱好的开发方法是一种修补和粘合的方法。我很早就看到 Django 分为项目和应用程序。根据他们的网站,一个项目由许多应用程序组成,一个应用程序可用于多个项目。
这引起了我的兴趣,因为这会使我网站区域之间的界限更加清晰。我试图找到一些更多的例子和信息,但我无法回答我的问题,即:
这样的应用有多大/多小?他们能够/应该密切互动吗?
例如,拥有一个应用程序来处理用户的个人资料,而另一个应用程序来处理这些用户的博客文章和评论是否明智? (在我的站点中,一个用户可以有多个博客,具有不同的配置文件)。还是它们有其他用途?
请您参考如下方法:
django 应用程序是python 包 的奇特名称。真的,就是这样。 django 应用程序与其他 python 包的唯一区别是它出现在 settings.py 的 INSTALLED_APPS 列表中是有意义的,因为它包含诸如模板、模型或其他可以由其他 django 功能自动发现的功能。
一个好的 Django 应用程序只会做一件事,并且做得很好,并且不会与可能使用它的任何其他应用程序紧密耦合。在遵循此约定的 contrib 命名空间中,django 提供了各种各样的应用程序。
在您的示例中,设计应用程序的一种好方法是为用户个人资料设计一个应用程序(或使用许多现有的个人资料应用程序之一),一个用于博客帖子的应用程序(或许多已经这样做的应用程序之一),一个用于评论的应用程序,与博客文章分开(同样,您可以为此使用现有的应用程序),最后,一个非常小的应用程序将这三个应用程序联系在一起,因为它们不会也不应该直接相互依赖。
