关于django:后端和前端MVC

Backend and frontend MVC

我对Web开发和MVC架构领域非常陌生。 我目前正在研究django,我认为这是一个MVC框架。 如果我是对的,那么对于Web应用程序,MVC意味着

视图是前端
模型是后端
控制器是前端和后端之间的粘合剂

好吧,如果以上是正确的,并且视图是唯一的前端部分,那么前端框架(如骨干,角)的功能究竟是什么? 他们究竟如何部署MVC概念? 另外,在构建简单的博客网站时,哪种框架更可取? 还有在前端和后端MVC框架上都可以使用网站的实例吗? 请举例。 为了澄清起见,我遇到了一个问题:在模型-视图-控制器原理中,什么是前端,什么是后端? 但无法完全理解。 谢谢


前端和后端以及MVC模型没有一对一的类比。例如,一个(Django)网站的管理员通常被认为是后端的一部分-它不是用户将看到的网站的一部分-但该管理员的一部分肯定是MVC模型的View部分。普通的Web用户看到和/或直接与之交互的任何内容都是前端的一部分,其他所有内容都是后端的一部分。

现在,Django中使用的MVC框架是什么?我们有:

  • 模型:这是应用程序中保留应用程序状态的部分。在Django中,其中很大一部分是数据库及其抽象层Django模型。其他部分是用户会话和request变量。
  • 视图:这是应用程序的一部分,向用户显示应用程序的状态。 Django视图和模板对此负责。打开网站时看到的任何数据都是MVC的"查看"部分。整体介绍也是其中的一部分。
  • 控制器:这是应用程序的一部分,代表您(用户)执行的任何操作。 Django并不是真正的独立的MVC框架,因为View部分和Controller部分紧密地交织在一起:您在站点上看到的任何链接,表单或按钮都是控制器。它告诉网站进行操作,例如显示不同的视图(例如,链接),或更改模型的状态(例如,编辑表单)。

骨干或Angular呢?为什么在单个应用程序中需要两个不同的MVC框架?

Django是服务器端框架。每个动作都在服务器上发生。如果单击链接或提交表单,则将请求发送到服务器,服务器将发送回完整的静态响应(在页面进入浏览器后页面不会更改的意义上是静态的)。您不能使用Django来使用逻辑客户端,因为它是在服务器上运行的python框架,而不是在客户端的浏览器中运行。相反,添加任何客户端逻辑(例如,重新排序页面上的项目列表或动态添加新项目。现在,每个页面都可以看作是某种小型应用程序。

Backbone和Angular是此类客户端应用程序的MVC框架的示例。它提供了Django等服务器端框架所缺乏的客户端应用程序逻辑,令人惊讶的是,喜欢MVC框架来开发服务器端应用程序的人通常也喜欢使用MVC框架来开发客户端应用程序。 。


我正在研究Django和网络开发模式。

我目前最喜欢的是(2014-01)。

使用Django(restful / json)作为MC,模型/控制器或支持的数据和逻辑。
Django中的控制器部分涉及业务规则和访问控制。

然后使用一个JavaScript框架和一部分html作为客户端代码。视图/控制器。

在实践中,客户端/浏览器加载一个JavaScript程序View / controller,然后对支持的模型/控制器进行轻松的查询


Django是Model-View-Controller模型的一种混合版本。 Django文档通常将其描述为Model-View-Template模型。通常,模板(带有模板标签的Django HTML等)通常与普通视图匹配,以网页方式提供用户视图。 Django中的视图通常代替Controller,因为它在Model(从数据库中获取数据并定义新对象的模型)与View(在本例中为Template)之间工作。该模型与Django中的常规模型相同,提供了不同对象的定义。因此,尽管Model-View-Controller通常是大多数语言的模型,但Model-View-Template模型更是如此,而View与通常的视图不同。在下面阅读更多内容:

http://jeffcroft.com/blog/2007/jan/11/django-and-mtv/