1

我想从 Rails 切换到 Django,以拓宽我的视野,一个问题浮现在我的脑海。

我的 Rails 应用程序一团糟,因为我的基于爱好的开发方法是一种修补和粘合的方法。我很早就看到 Django 在项目和应用程序之间划分。根据他们的网站,一个项目由许多应用程序组成,一个应用程序可以用于许多项目。

这引起了我的兴趣,因为这会使我的站点区域之间的界限更加清晰。我试图找到更多的例子和信息,但我无法回答我的问题,即:

这样的应用程序有多大/小?他们是否能够/应该密切互动?

例如,让一个应用程序来处理用户的个人资料,而另一个应用程序来处理来自这些用户的博客帖子和评论是否明智?(在我的站点中,一个用户可以拥有多个博客,具有不同的个人资料)。或者它们是否打算以其他方式使用?

4

4 回答 4

6

django App 是python 包的花哨名称。真的,就是这样。django 应用程序与其他 python 包的唯一区别是它出现在INSTALLED_APPS列表中是有意义的settings.py,因为它包含模板、模型或其他可以被其他 django 功能自动发现的功能。

一个好的 django 应用程序只会做一件事,做得很好,并且不会与可能使用它的任何其他应用程序紧密耦合。contribdjango 在遵循此约定的命名空间中提供了各种各样的应用程序。

在您的示例中,设计应用程序的一种好方法是为用户配置文件(或使用许多现有配置文件应用程序之一)、一个用于博客文章的应用程序(或已经这样做的众多应用程序之一)、一个用于评论的应用程序,与博客文章分开(同样,您可以为此使用现有的应用程序),最后是一个将三者联系在一起的非常小的应用程序,因为它们不也不应该直接相互依赖。

于 2011-09-01T20:23:08.993 回答
1

使用应用程序的目的是使它们可重用。Django like DRY principleDRY 代表DO NOT repeat yourself

应用程序应该尽可能小,并且松耦合。因此,对于一个应用程序来说,不应该需要另一个应用程序才能正常工作。

Django 建议为每个表编写一个应用程序(嗯,并非总是如此,但是一旦你想扩展你的应用程序,你肯定需要划分表来配对应用程序。否则你将很难维护你的代码。)

例如,您可以为用户创建一个应用程序、一个用于销售的应用程序、一个用于评论的应用程序、一个用于文章的应用程序。维护您的代码会更容易,如果您做得对,您可以在其他应用程序中使用该应用程序,并在应用程序中project进行一些(如果有的话)修改。

Project's 是,'s 的汇编app。用户应用程序、文章应用程序、评论应用程序可以组合在一起创建一个项目,或者换句话说,一个网站。

如果你想学习 django,我建议你看看:

http://www.djangobook.com/

http://docs.djangoproject.com/


一句忠告,在任何情况下都不要复制/粘贴。不仅您的代码很有可能失败,而且您将不知道代码在做什么。如果你打算在你的项目中使用别人的代码,至少键入它们,这会让你理解代码在做什么,或者至少,它会给出一个想法。

编写自己的代码总是更好的维护,但这并不意味着您应该重新发明世界,您可以使用库,查看它们的文档以正确使用它。

文档,教程是你最好的朋友。

祝你好运。

于 2011-09-01T23:58:35.970 回答
0

项目基本上是您的项目所在的地方......在您的项目中,您可以设置您的网址、项目设置等。

应用程序定义了自己的数据模型和视图以在项目中使用。如果您愿意,您可以在项目之间移动它们。

我强烈建议浏览 Django 网站上的教程,因为它们将向您展示项目和应用程序是什么、如何管理两者、如何使用管理面板、如何使应用程序在多个项目中可用等。

于 2011-09-01T20:25:49.897 回答
0

一个门户 = 一个 django 项目

广告系统、图库照片、产品目录 = 应用程序

于 2011-09-01T20:26:09.620 回答