过去20年来网站从简单的HTML搭配一点CSS进化到现在的越来越复杂的状况,为了简化和模块化,设计了MVC模式。
1.Controller
当用户基于URL向服务器请求(request)一个页面(page)时,服务器会把所有请求信息(request information)传给特定的Controller,这个Controller负责处理来自客户端(浏览器)的请求流(handles request flow),同时告诉其他服务器该如何处理这个请求。Controller就像一个介于Moudle和View之间的中间人。
当Controller接收到一个request后首先做的事是向Model要相关信息。
2.Module
Module的任务是处理所有关于这个request的数据逻辑(data logic),Module会与数据库交互,处理验证、增删改查之类的数据操作。
Controller是不直接参与数据处理的,他仅仅负责接收和发送数据,这样做的好处在于Controller不用处理数据,只需要告诉Module该怎么做就好。而Module也不用关心数据是request传输成功还是失败,它只关心数据和数据库的交互,然后返回给Controller。
3.View
在收到Module传来的数据之后,Controller会去和View交互,把数据渲染(render)给用户看。View只关心如何去呈现从Controller收到的信息,它动态渲染HTML生成模板文件(template file),之后View会把生成的东西(presentation)传回Controller,Controller再传回给用户。