后端和前端MVC

use*_*317 4 django model-view-controller frameworks backbone.js

我对Web开发和MVC架构的世界都很陌生.我目前正在研究django,我相信它是一个MVC框架.如果我是对的,对于MVC暗示的Web应用程序

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

好吧,如果以上是真的,视图是唯一的前端部分究竟什么是前端框架的功能,如骨干,角?他们究竟如何部署mvc概念?在构建一个简单的博客网站时,哪个框架更适合?还有网站在前端和后端mvc框架上工作的实例吗?请举例.为了澄清,我经历了这个问题:在模型 - 视图 - 控制器原理中,前端是什么,后端是什么?但完全不能理解.谢谢

knb*_*nbk 9

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

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

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

那么Backbone还是Angular?为什么在单个应用程序中需要两个不同的MVC框架?

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

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