??点击“博文视点Broadview”,获取更多书讯
在Web应用开发中,有两种开发模式:前后端不分离和前后端分离。
前后端不分离的开发模式耦合度高,适合纯网页开发;前后端分离的开发模式耦合度低,前端可以通过访问接口来对数据进行增删改查。所以,前后端分离的开发模式是更被开发者广泛使用的一种。
前后端分离主要是指,随着Web技术的发展,采用前端、后端各自独立开发的模式,解决前端后端一体化开发所带来的互相制约问题,提高网站项目开发效率和后续的可维护性,同时可以通过标准化的WebAPI为前后端传递标准化数据,如JSON、XML格式的数据。
前后端分离原理DjangoRestFramework,简称DRF,中文意思是“Django表述状态转化框架”,是一款功能强大、基于Django框架开发的、用于构建符合RESTful风格WebAPI的、前后端分离的商业化开发工具包。
它是免费开源的,被一些大型IT企业所使用,是目前非常流行的商业级技术框架之一。
Django的RestFramework前后端分离实现原理如图1所示。
图1前后端分离实现原理
浏览器端,采用自有客户端技术框架(如Vue.js、ExtJS、EasyUI、DWZ等)实现独立开发,并与服务器端进行资源调用。
服务器端,整体框架建立在Django框架基础上,借助DRF技术实现数据、文件的交换使用。
DRF的核心是提供RESTful规范的API接口,为浏览器端提供数据和文件访问支持。
这里的数据和文件统称为数据资源。
为了让浏览器端接收JSON或XML格式的数据,该框架事先需要进行数据序列化处理。接收到浏览器端发送过来的数据后,需要对其进行反序列化处理才能使用。
前后端分离方式与前后端不分离方式之间的一个重要的区别是,前者不进行模板渲染便将其返回给浏览器,仅提供标准结构的数据资源。
RESTfulREST的全称为RepresentationalStateTransfer,中文意思是“表述状态转化”。
REST于年在RoyFielding的博士论文中首次出现,RoyFielding是HTTP规范的主要编写者之一。
在目前主流的3种Web服务交互方案中,REST相比于SOAP(SimpleObjectAccessProtocol,简单对象访问协议)及XML-RPC更加简单明了,无论是对URL进行处理还是对Payload进行编码,REST都倾向于用更加简单、轻量的方法进行设计和实现。
值得注意的是,REST并不是一个明确的标准,而更像一种设计风格。符合REST风格的架构方式就是RESTful。
1.数据资源与URL
REST需要表述的是数据资源,包括数据库中的记录、各种文件等。要让数据资源被浏览器访问,需要提供一个唯一标识。在Web中,这个唯一标识就是URL(UniformResourceLocator,统一资源定位符)。比如,假设.0.0.1:/use/1中的1指向应用use下的某一条数据记录,则整个URL就是一个数据资源地址。
2.统一资源接口
有了数据资源和访问地址后,RESTful为浏览器端的访问提供了4种常用HTTP标准访问方式,用于传递数据。
GET:从服务器端获取数据资源。
POST:在服务器端建立一个数据资源。
PUT:在服务器端更新数据资源。
DELETE:从服务器端删除指定的数据资源。
3.常用返回状态码
HTTP的返回状态码是纯数字的,如、等,不太容易理解,RESTful提供了统一标准的文字标识符,如表1所示,更有助于使用人员理解。
表1常用返回状态码对应的文字识别符
▼
关于前后端分离的内容就先分享到这里,欢迎阅读《PythonDjangoWeb从入门到项目实战(视频版)》一书,继续了解更多关于DjangoWeb开发的内容。
▊《PythonDjangoWeb从入门到项目实战(视频版)》
刘瑜安义著
经验丰富的写作团队,本书作者皆有20多年的实战经验,并有雄厚的写作基础,将理论与实践完美地结合在一起。
将故事融入于书中,增加了本书的阅读情趣,便于读者更好地吸收重点知识。
附赠丰富的配套学习资源:1个完整的商业项目代码案例、80多段案例代码、30多个视频(免费赠送)、习题册及答案手册(免费赠送)。
贴心的互动教学:QQ社群、