我想从Rails切换到Django,以扩大我的想法,一个问题在我脑海中浮现。
我的Rails应用程序非常混乱,因为我的基于业余爱好的开发方法是一个补丁和粘合的。我很早就看到Django在项目和应用程序之间进行了分割。根据他们的网站,一个项目由许多应用程序组成,一个应用程序可用于许多项目。
这引起了我的兴趣,因为这会使我网站的区域之间的界限更加清晰。我试图找到更多关于这方面的例子和信息,但我无法回答我的问题,即:
这样的应用程序有多大/小?他们能够/应该密切互动吗?
例如,有一个应用程序可以处理用户的个人资料,而另一个应用程序来处理来自这些用户的博客帖子和评论,这是明智的吗? (在我的网站中,用户可以拥有多个博客,具有不同的个人资料)。或者他们是否打算以其他方式使用?
答案 0 :(得分:6)
django App是 python包的奇特名称。真的,就是这样。将django应用程序与其他python包区别开来的唯一一点就是它出现在INSTALLED_APPS
的{{1}}列表中是有意义的,因为它包含模板,模型或其他功能的内容可以通过其他django功能自动发现。
一个好的django应用程序只做一件事,做得好,而不是与任何其他可能使用它的应用程序紧密耦合。在遵循此约定的settings.py
命名空间中,django提供了各种各样的应用程序。
在您的示例中,设计应用程序的一种好方法是为用户配置文件(或使用众多现有配置文件应用程序之一),一个用于博客帖子的应用程序(或已经执行此操作的众多应用程序之一),评论的应用程序,与博客文章分开(再次,您可以使用现有的应用程序),最后,一个非常小的应用程序将三者联系在一起,因为他们不会也不应该直接相互依赖。 / p>
答案 1 :(得分:1)
使用应用程序的目的是使它们可重用。 Django喜欢DRY principle
DRY代表DO NOT repeat yourself
应用程序应该尽可能小,并且松散耦合。因此,对于应用程序,不应该需要其他应用程序才能正常工作。
Django建议为每个表编写一个应用程序(好吧,并非总是如此,但是一旦你想要扩展你的应用程序,你肯定需要划分表来配对应用程序。否则你将很难维护你的代码。)
例如,您可以为用户创建应用,为销售创建应用,为评论创建应用,为文章创建应用。维护代码会更容易,如果你做得对,你可以在其他project
中使用应用程序,并在应用程序中进行一些修改(如果有的话)。
Project
是app
的汇编。用户应用程序,文章应用程序,评论应用程序可以组合成一个项目,或者换句话说,一个网站。
如果您想学习django,我建议您查看:
http://docs.djangoproject.com/
一句建议,不,无论如何,复制/粘贴。不仅你的代码有很大的失败机会,而且你不会知道代码在做什么。如果你打算在你的项目中使用别人的代码,至少键入它们,这将使你理解代码正在做什么,或者至少,它会给出一个想法。
编写自己的代码总是更适合维护,但这并不意味着您应该重新发明世界,您可以使用库,查看他们的文档以正确使用它。
文档,教程是你最好的朋友。
祝你好运。答案 2 :(得分:0)
项目基本上是您项目所在的地方......在您的项目中,您可以设置您的网址,项目设置等。
应用程序定义自己的数据模型和要在项目中使用的视图。如果您愿意,可以在项目之间移动它们。
我强烈建议您浏览Django网站上的tutorials,因为它们会告诉您项目和应用是什么,如何管理这些内容,如何使用管理面板,如何使应用程序在多个应用中可用项目等。
答案 3 :(得分:0)
门户网站=一个django项目
广告系统,图库照片,产品目录=应用