你知道前后端分离开发的原理吗?

👆点击“博文视点Broadview”,获取更多书讯

在Web应用开发中,有两种开发模式:前后端不分离和前后端分离。

前后端不分离的开发模式耦合度高,适合纯网页开发;前后端分离的开发模式耦合度低,前端可以通过访问接口来对数据进行增删改查。所以,前后端分离的开发模式是更被开发者广泛使用的一种。

前后端分离主要是指,随着Web技术的发展,采用前端、后端各自独立开发的模式,解决前端后端一体化开发所带来的互相制约问题,提高网站项目开发效率和后续的可维护性,同时可以通过标准化的Web API为前后端传递标准化数据,如JSON、XML格式的数据。

前后端分离原理

Django Rest Framework,简称DRF,中文意思是“Django表述状态转化框架”,是一款功能强大、基于Django框架开发的、用于构建符合RESTful风格Web API的、前后端分离的商业化开发工具包。

它是免费开源的,被一些大型IT企业所使用,是目前非常流行的商业级技术框架之一。

Django的Rest Framework前后端分离实现原理如图1所示。

图1  前后端分离实现原理

浏览器端,采用自有客户端技术框架(如Vue.js、ExtJS、EasyUI、DWZ等)实现独立开发,并与服务器端进行资源调用。

服务器端,整体框架建立在Django框架基础上,借助DRF技术实现数据、文件的交换使用。

DRF的核心是提供RESTful规范的API接口,为浏览器端提供数据和文件访问支持。

这里的数据和文件统称为数据资源。

为了让浏览器端接收JSON或XML格式的数据,该框架事先需要进行数据序列化处理。接收到浏览器端发送过来的数据后,需要对其进行反序列化处理才能使用。

前后端分离方式与前后端不分离方式之间的一个重要的区别是,前者不进行模板渲染便将其返回给浏览器,仅提供标准结构的数据资源。

RESTful

REST的全称为Representational State Transfer,中文意思是“表述状态转化”。

REST于2000年在Roy Fielding的博士论文中首次出现,Roy Fielding是HTTP规范的主要编写者之一。

在目前主流的3种Web服务交互方案中,REST相比于SOAP(Simple Object Access Protocol,简单对象访问协议)及XML-RPC更加简单明了,无论是对URL进行处理还是对Payload进行编码,REST都倾向于用更加简单、轻量的方法进行设计和实现。

值得注意的是,REST并不是一个明确的标准,而更像一种设计风格。符合REST风格的架构方式就是RESTful。

1.数据资源与URL

REST需要表述的是数据资源,包括数据库中的记录、各种文件等。要让数据资源被浏览器访问,需要提供一个唯一标识。在Web中,这个唯一标识就是URL(Uniform Resource Locator,统一资源定位符)。比如,假设127.0.0.1:8000/use/1中的1指向应用use下的某一条数据记录,则整个URL就是一个数据资源地址。

2.统一资源接口

有了数据资源和访问地址后,RESTful为浏览器端的访问提供了4种常用HTTP标准访问方式,用于传递数据。

  • GET:从服务器端获取数据资源。
  • POST:在服务器端建立一个数据资源。
  • PUT:在服务器端更新数据资源。
  • DELETE:从服务器端删除指定的数据资源。

3.常用返回状态码

HTTP的返回状态码是纯数字的,如404、200等,不太容易理解,RESTful提供了统一标准的文字标识符,如表1所示,更有助于使用人员理解。

表1 常用返回状态码对应的文字识别符

关于前后端分离的内容就先分享到这里,欢迎阅读《Python Django Web从入门到项目实战(视频版)》一书,继续了解更多关于Django Web开发的内容。

▊《Python Django Web从入门到项目实战(视频版)》

刘瑜 安义 著

  • 经验丰富的写作团队,本书作者皆有20多年的实战经验,并有雄厚的写作基础,将理论与实践完美地结合在一起。
  • 将故事融入于书中,增加了本书的阅读情趣,便于读者更好地吸收重点知识。
  • 附赠丰富的配套学习资源:1个完整的商业项目代码案例、80多段案例代码、30多个视频(免费赠送)、习题册及答案手册(免费赠送)。
  • 贴心的互动教学:QQ社群、微信公众号在线服务,作者及时反馈!

Python的Django框架是目前流行的一款重量级网站开发框架,具备简单易学、搭建快速、功能强大等特点。本书从简单的HTML、CSS、JavaScript开始介绍,再到Django的基础知识,融入了大量的代码案例、重点提示、图片展示,做到了手把手教授。本书基于Django 3.0.7版本、Python 3.8.5版本、Rest Framework 3.11.1版本、Vue.js 2.6.10版本、数据库MySQL 80版本进行讲解。本书还提供了一个商业级别的项目案例,采用目前主流的前后端分离开发技术,以便读者可以体验正式项目的开发过程。熟练掌握本书内容后,读者将达到中级Web项目开发工程师的技术水平。

五折专享,快快扫码抢购吧!)

代码语言:javascript
复制
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连

 热文推荐  
职场奇袭!3分钟完成一天工作!
面试Go语言开发?这本书帮你感动面试官!
书单 | 8月新书榜单TOP10
阿里云专家带你揭秘云计算数据底座

▼点击阅读原文,查看本书详情~