Django的前后端分离+REST表征性状态转移+RESTful API
文章目录
Django的前后端分离
基本概念
FBV
基于函数的视图函数
缺点:
判断请求方式;
序列化难度较大;
data={
'user':user
}
CBV
基于类的视图函数
不需要判断请求方式自动执行
缺点:
序列化难度大
DRF
django rest framework
专门来解决序列化的问题
FBV+DRF
基于函数的视图函数
缺点:
判断请求方式;
序列化难度较大;
django rest framework
专门来解决序列化的问题
CBV+DRF
基于类的视图函数
不需要判断请求方式自动执行
缺点:
序列化难度大
django rest framework
专门来解决序列化的问题
RESTful API
什么是REST
一种软件架构风格、设计风格、而不是标准,只是提供了一组设计原则和约束条件。它主要用户客户端和服务器交互类的软件。
基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。
REST全称是Representational State Transfer, 表征性状态转移。
给你接口
127.0.0.1:8000/user/add/ post
127.0.0.1:8000/user/delete/ delete
127.0.0.1:8000/user/update/ put
127.0.0.1:8000/user/find/ get
根据请求方式的不同执行不同的业务逻辑
127.0.0.1:8000/user/
表征性状态转移REST(representiontational state transfer)
根据不同的请求方式,进行表征性状态转移
表征性状态转移
本来都在接口上,现在放到视图函数里面了
def user(request):
if request.method == 'GET':
user.objects.filter
if request.method == 'POST':
user.save
if request.method == 'delete':
user.delete
if request.method == 'put':
user.save
REST(表征性状态转移)的出现
首次在2000年Roy Thomas Fielding的博士论文中出现,Fielding是一个
非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者,Apache服务器软件的作者之一 ,Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了广泛的关注。
论文
本文研究计算机科学两大前沿—软件和网络—的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化,很少客观地评估不同的设计选择对系统行为的影响。而相反地,网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。
REST爆发
其实在REST架构推出的十几年间,它并没有一路高歌的发展,真正的大范围推广是在2013年之后,伴随着移动端的飞速发展,越来越多人的开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件采用"客户端/服务器"模式,也就是我们常说的C/S模式,这一切建立在分布式体系上,通过互联网通信,具有高延时,高并发等特点。网站开发,完全采用软件开发开发的模式。但传统上,软件和网络是两个不同的领域,很少有交集,软件开发主要针对单机环境,网络则主要研究系统之间的通信。我们需要考虑的是如何开发在互联网环境中使用软件。
理解RESTful
要理解RESTful架构,最好的就是去理解它的单词Representational State Transfer到底是什么意思,它的每一个词到底要表达什么。 REST的释义,“表现层状态转化”,其实这省略了主语。 “表现层”其实指的是 “资源(Resource)"的“表现层” 。
资源(resource)
所谓"资源”,就是网络上的一一个实体,或者说是网络上的一个具体信息。它可以是一段文本,一-张图片,-首歌曲,- -种服务,总之就是-个具体的实例你可以使用一-个URI (统-资源定位符)指向它,每种资源对应一个特定的URI要获取这个资源,访问它的URI就可以了,因此URI就成了每一个资源的地址或独一无二的识别符。所谓"上网”就是与互联网上一-系列的“资源”互动调用它们的URI。