Python Django-什么构成应用程序?

Python Django-什么构成应用程序?,python,django,Python,Django,我正在构建一个Django应用程序,其中包含许多模型(5-10)。将有一个管理端,由最终用户管理数据,然后是用户端,其他最终用户只能读取数据。我理解Django应用程序的目的是鼓励模块化,但我不确定所谓的“底线在哪里” 在“最佳实践术语”中:每个模型(或非常相关的模型组)是否应该有自己的应用程序?是否应该先有“管理员”应用程序,然后是“前端”应用程序 在这两种情况下,其他应用程序如何检索和使用其他应用程序中的模型/数据?应用程序是逻辑分隔符。例如,如果您的站点有博客、轮询和提要,则您可能有博客、

我正在构建一个Django应用程序,其中包含许多模型(5-10)。将有一个管理端,由最终用户管理数据,然后是用户端,其他最终用户只能读取数据。我理解Django应用程序的目的是鼓励模块化,但我不确定所谓的“底线在哪里”

在“最佳实践术语”中:每个模型(或非常相关的模型组)是否应该有自己的应用程序?是否应该先有“管理员”应用程序,然后是“前端”应用程序


在这两种情况下,其他应用程序如何检索和使用其他应用程序中的模型/数据?

应用程序是逻辑分隔符。例如,如果您的站点有博客、轮询和提要,则您可能有博客、轮询和提要应用程序。每个应用程序可能有多个模型(例如博客的博客和帖子模型),但可以通过功能相互分离

如果你不想的话,你不必严格地把东西分成不同的应用程序。将东西拆分成应用程序确实有助于解决过度拥挤的问题。如果你认为你将增长超过10个模型,你可能会考虑在它变得太硬之前拆分(Django真的不喜欢你在应用程序之间移动东西)。 至于从其他应用程序访问内容,每个应用程序都是一个模块,所以您所做的就是

from app1.models import App1Model

你们都准备好了。

Python\Django是模块化的

  • 应用程序应该只包括那些通常解决一个具体任务的模型
  • 如果p.1中的一些模型可以用于其他任务,那么最好为这些模型创建一个新的应用程序。也就是说,如果一些模型在多个任务之间共享,那么就有逻辑用这些模型创建一个新的应用程序 例如,你有一个论坛应用程序。这个论坛有诸如投票、注册、PM等功能。从逻辑上来说,一切似乎都结合在一起了。然而,如果你的网站只是一个论坛,但如果有其他内容,例如有评论的博客,那么“注册模式”可以作为一个单独的应用程序,并可以在网站的各个部分之间共享,例如“有评论的博客”和“论坛”


    关于管理\前端。我见过10多种型号的应用程序\项目。基于上面的论坛示例,如果管理部分没有执行任何超出应用范围的任务,那么我会将管理和前端放在一个应用内。否则,如果admin与其他任务有任何关系,这超出了主应用程序的范围-admin应作为一个单独的应用程序。

    例如,对于Blogs应用程序。。管理和前端功能是否包含在该应用程序中?Feeds应用程序呢?如果它有一个链接到博客管理员的管理员,那么这些管理员是如何一起玩的?这就是我的困惑所在——有一个管理面板管理10多个模型(通常分为应用程序),一个面向前端的用户也管理这些模型(尽管方式不同)。是的,通常情况下,你会将模型的逻辑子集分为一个应用程序以及与这些模型、视图、管理、,API和不属于同一应用程序的内容。至于一起玩,正如我所说,应用程序并不是真正孤立的,你可以从另一个应用程序导入东西。例如,如果要在应用A2的管理中使用应用A1中的管理内联,请在A1/admin.py中定义内联,在A2/admin.py中导入它并将其添加到内联。