一、web框架的设计模式前言:认识web框架的设计模式对学习web框架非常重要。本章只是介绍web框架常见的设计模式,不会深入讨论如何设计web框架。最常见的web框架设计模式有两种:MVCMTV1.1 MVC经典的MVC模式中:M(model) 业务模型,代表一个存储数据的对象V(view) 用户界面,代表模型数据的可视化C(controller) 控制器,作用于模型和视图上。它控制数据流向,并在数据变化时更新视图。它使视图与模式解耦。1.2 MTVdjango的设计模式称为MTV,本质上跟MVC一样,只是叫法不同。M全拼为Model,模型,与MVC中的M功能相同,负责和数据库交互,进行数据处理V全拼为View,视图,与MVC中的C功能相同,接收请求,进行业务处理,返回响应T全拼为Template, 模板,与MVC中的V功能相同,负责构造要返回的html页面MTV框架图如下:
django中数据流和请求流程如下:用户通过浏览器发起请求view根据请求和业务逻辑向model获取或者发送数据model根据视图的要求和数据库进行交互view收到model返回的结果后将结果发送给templatetemplate将收到的数据渲染成最终的html返回给viewview将最终包含结果数据的html返回给用户二、web应用开发模式web应用的开发主要有两种模式:前后端不分离前后端分离2.1前后端不分离在互联网早期,web应用开发采用前后端不分离的方式。它是以后端直接渲染模板完成响应的一种开发模式。以前后端不分离的方式开发的web应用的架构图如下:
浏览器向服务器发起请求,服务器接收到请求后去数据库中获取数据,然后渲染html模板并返回渲染后的html数据,或者返回一个重定向。绝大部分工作都在后端进行处理,客户端(浏览器)只负责页面的展示和用户交互。这种开发方式有如下特点:一般一个应用只需要一个后台服务器客户端只需要请求不同的页面,服务器会完成页面上的所有数据逻辑,所以http请求次数较少每个请求都是一个html,会有大量的冗余数据开发时,前后端代码耦合高,出了问题责任不明确在开发单纯的网站时,效率非常高,有利于seo响应数据是html,只能适应单一客户端,当需要多端支持时如要单独开发
2.2 前后端分离随着ajax技术的出现,可以在不刷新页面向服务器发送http请求,所以又出现了前后端分离的开发模式。后端只要开发接口即可,前端可以通过发起ajax请求,拿到后端的数据,渲染和怎样调用接口的事情,交给前端。以前后端分离方式开发的web应用的结构图如下:
这种开发方式有如下特点:是目前web开发的主流模式需要静态文件服务器和后端接口服务器后台服务器只提供的数据接口的服务,响应的往往是json数据页面是动态渲染的,爬虫无法爬取页面的有效信息,不利于seo开发时,前后端责任分工明确前后端解耦合,可以同时开发,提高开发效率一个后台即可满足网站、app、小程序等多种应用的需要
如何选择web开发模式对于主要功能是展示,没有复杂交互的网站,并且需要良好的seo,选择前后端不分离后端管理项目,交互性较强,不考虑seo,可以选择前后端分离另外,也可以结合业务,混合使用。