前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你知道前后端分离开发的原理吗?

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

作者头像
博文视点Broadview
发布2023-05-06 19:59:42
7770
发布2023-05-06 19:59:42
举报

👆点击“博文视点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
阿里云专家带你揭秘云计算数据底座

▼点击阅读原文,查看本书详情~
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档