0. 引言
毕业离校前帮老师简单写了一个CMS(内容管理系统)网站,用于做协会的季报展示和活动公告,连评论、注册等功能都没有。该网站使用django实现,采用了前后端不分离的方式。到公司以后因为项目组需要跟小伙伴使用vue + django的模式写了一个小系统,采取前后端分离的模式,所以简单聊聊两者的区别。
1. 前后端不分离开发
前后端不分离意味着我们看到的页面的数据、样式都是由后端渲染填充之后由浏览器展示出来的,后端需要控制前端的展示,前端与后端的耦合度很高。
拿Django的MTV举例,django在返回响应请求返回一个response的时候,其实是返回了一个渲染好的页面,具体操作如下:
- 浏览器访问服务端,django服务端返回一个渲染好的HTML页面,用户可在该页面进行操作;
- Django在收到一个请求时,会根据url将请求重定向到view模块,view模块会根据request生成目标数据;
- 在生成目标数据之后,会选择对应的模板文件(一般是HTML)将数据渲染到HTML模板文件中,并将渲染后的HTML文件返回给请求方。
- 浏览器只负责展示页面。