【发布时间】:2014-12-20 16:25:51
【问题描述】:
对不起这个愚蠢的问题,但我很困惑:
我读过This
Intermezzo:项目与应用程序
您可能想知道为什么在 Django 1.4 中,startproject 命令与预先存在的 startapp 命令一起添加。答案在于 Django“项目”和 Django“应用程序”之间的区别。简而言之,一个项目是一个完整的网站或应用程序。 “应用程序”是一个小的、(希望是)自包含的 Django 应用程序,可以在任何 Django 项目中使用。如果您正在构建一个名为“Super Blogger”的博客应用程序,那么“Super Blogger”就是您的 Django 项目。如果“超级博客”支持读者投票,“投票”将是“超级博客”使用的 Django 应用程序。这个想法是,您的投票应用程序应该可以在任何需要投票的 Django 项目中重用,而不仅仅是在“超级博客”中。项目是应用程序的集合,以及项目特定的逻辑。一个应用可以在多个项目中使用。
虽然您的自然倾向可能是在“投票”应用中包含大量“超级博客”特定代码和信息,但避免这样做有很多好处。基于松耦合原则,将您的应用程序编写为独立实体可防止项目中的设计决策和错误直接影响您的应用程序。这也意味着,如果您愿意,您可以将任何应用的开发工作交给其他开发人员,而无需他们访问或更改您的主项目。
就像软件开发中的许多事情一样,前期需要付出一些努力,但以后会获得巨大的回报。
那么,如果网站包含:上传、登录、注册、添加帖子
如果我遵循应用程序理念(而不是为每个控制器/视图使用文件),我是否会将它们拆分为项目?代码是否还有其他复杂性?
既然 Django 创建了 __init__ 文件以便更轻松地导入 class,那么将其与其他 startapp 复杂化的主要想法是什么?在我在网上找到的教程中,他们都制作了一次startapp,即使是最完整的应用程序。
【问题讨论】:
-
我不明白你的问题。无论您是否将它们拆分为单独的应用程序,您肯定不会为每个视图创建一个文件。
-
请说明您需要哪些模型,我很乐意为您按照引用的源代码设计架构。您在那里引用的建议似乎是个好建议。
-
可能在这里得到回答:Django 项目与应用程序 [1]:stackoverflow.com/questions/4879036/…
-
问题在于在自己的项目中采用每个视图,因为这是我所理解的?
-
但这并不是引用的文字所说的模糊。一个项目是一个完整的网站;应用程序是单个功能区域。这些都不是由单一视图组成的。
标签: python django model-view-controller