2011-09-01 174 views
1

我想从Rails切换到Django,拓宽了我的思路,并且在我的脑海里浮现出一个问题。Django Apps究竟是什么

我的Rails应用程序非常混乱,因为我的基于爱好的开发方法是一种修补和粘连的应用程序。我很早就看到,Django在项目和应用程序之间进行了分工。根据他们的网站,一个项目由许多应用程序组成,一个应用程序可用于许多项目。

这让我很感兴趣,因为这会让我的网站的区域之间的界限更加清晰。我试图找到更多的例子和信息,但我无法回答我的问题,它是:

这样的应用程序有多大/小?他们能够/应该密切相互作用吗?

例如,聪明的做法是有一个应用程序处理用户的配置文件,另一个应用程序处理来自这些用户的博客文章和评论? (在我的网站中,用户可以拥有多个不同配置文件的博客)。还是他们的意思是用于其他方面?

回答

6

一个django应用程序是蟒蛇包的花哨名称。真的,就是这样。将django应用程序与其他python软件包区分开来的唯一方法是,它有意义的出现在settings.pyINSTALLED_APPS列表中,因为它包含了可以被其他django自动发现的模板,模型或其他功能特征。

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

在您的示例中,设计应用程序的一个好方法是为用户配置文件(或使用许多现有配置文件应用程序之一),一个博客帖子应用程序(或许多已经这样做的应用程序之一)一个用于评论的应用程序,与博客文章分开(再次,您可以使用现有应用程序进行此操作),最后是一个将三者结合在一起的非常小的应用程序,因为它们不直接相互依赖。

+0

我经常想知道的一件事是,如果我创建了一堆模型,并且想要创建自己的管理站点(而不是重用现有的站点),有一个公共站点并且有一个API,应该我将模型创建为一个应用程序,其他人作为单独的应用程序创建?那么我可以在其他人之间共享模型应用程序,并根据需要从不同的主机提供它们? – shawnwall

0

一个项目基本上是在您的项目住...在你的项目的地方您设置您的网址,项目设置等

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

我强烈建议从Django网站上运行tutorials,因为它们会告诉你什么是项目和应用程序,如何管理两者,如何使用管理面板,如何使应用程序可用于多个项目等。 。

0

门户=一个Django项目

一个广告系统,相册,产品目录=应用

1

使用应用程序的是让他们可重复使用的目的。 Django赞了DRY principle DRY代表DO NOT repeat yourself

应用程序应该尽可能小,并且松散耦合。所以,一个应用程序不应该需要另一个应用程序才能正常工作。 Django建议为每个表格编写一个应用程序(当然,并非总是如此,但只要想要扩展应用程序,就一定需要将表格分配到一对应用程序,否则您将很难维护您的应用程序码。)

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

Project的是,汇编app的。用户应用程序,文章应用程序,评论应用程序可以组合成一个项目,或换句话说,一个网站。

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

http://www.djangobook.com/

http://docs.djangoproject.com/


一个建议的话,,在任何情况下,复制/糊。不仅你的代码有很大的失败的机会,但你不会知道代码在做什么。如果你打算在你的项目中使用别人代码,至少输入他们,这会让你明白代码在做什么,或者至少它会给出一个想法。

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

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

祝你好运。