你知道前后端分离开发的原理吗?
共 3095字,需浏览 7分钟
·
2021-09-06 02:30
👆点击“博文视点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格式的数据,该框架事先需要进行数据序列化处理。接收到浏览器端发送过来的数据后,需要对其进行反序列化处理才能使用。
前后端分离方式与前后端不分离方式之间的一个重要的区别是,前者不进行模板渲染便将其返回给浏览器,仅提供标准结构的数据资源。
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项目开发工程师的技术水平。
(五折专享,快快扫码抢购吧!)
如果喜欢本文 欢迎 在看丨留言丨分享至朋友圈 三连
热文推荐
▼点击阅读原文,查看本书详情~