Django REST framework 理解

Django REST framework 理解

Web应用模式

1 .先后端不分离:在先后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端须要控制前端的展现,前端与厚度那的耦合度很高.前端

这种应用模式比较合适纯网页应用,可是后端对接APP时,App可能并不须要后端返回一个HTML网页,二仅仅是数据自己,因此后端本来返回网页的接口不在适用前端APP应用,为了对接APP后端嗨需再开发一套接口java

2 先后端分离:在先后端分离的应用模式中,后端仅返回前端所需的数据,不在渲染HTML页面,不在控制前端的效果,只用前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端本身决定,网页有网页的处理方式,APP有APP的处理方式,但不管哪一种前端,所须要的数据基本相同,后端仅需开发一套逻辑对外提供数据便可.
在先后端分离的应用模式中,前端与后端的耦合度相对较低python

在先后端分离的应用模式中,咱们一般将后端开发的每一视图都成为一个接口,或者API,前端经过访问接口来对数据进行增删改查web

认识RESTful

1.在先后端分离的应用模式里.后端API接口如何定义?数据库

1.POST/add-goods增长商品
2.POST/delete-goods删除商品
3.POST/update-goods修改商品
4.GET/get-goods查询商品信息后端

2. 名称服务器

具象状态传输” 或者表现层转换化.数据结构

RESTful是一种开发理念  . REST是设计风格而不是标准
REST特色:url简洁,将参数经过url传到服务器.
称之为RESTful框架
1.具象的:资源
2.表现:格式
3.状态转换:数据变化
若是客服端想要操做服务器,必须经过某种手段,让服务器端发生"状态转换"
总结:
1.每个URL表明一种资源
2.客服端和服务器端,传递这个资源的表现层
3.客服端经过四个GTTP动词,对服务器端资源进行操做,实现"表现层状态转化"app

表现层状态转化

1.域名框架

应该尽可能将API部署在专用域名之下

若是肯定API很简单,不会有进一步扩展,能够考虑放在主域名下。

 

2.版本

应该讲API的版本号放入URL

 

3,路径

表示API的具体网址,每一个网站表明一种资源

1.资源做为网站,不能有动词,并且所用的名词每每与数据库的表名对应

2,API中的名词应该使用复数,不管子资源或者全部资源

动词:GET(SELECT):从服务器取出资源(一项或多项)。

POST(CREATE):在服务器新建一个资源。

PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

DELETE(DELETE):从服务器删除资源。

 

4.过滤信息

若是技能数量不少,服务器不可能都将它们返回给与用户API应该提参数,过滤返回结果

 

5.状态码

服务器想用户返回的状态码,和提示信息,

 

6.错误处理(Error handling)

若是状态码4xx,服务器就应该想用户返回出错信息,

 

7.返回结果

针对不一样操做,服务器想用户返回的结果应该符合如下规范

1.GET/collection:返回资源对象的列表

2.GET/coliection/resource:返回单个 资源对象

3.POST/collection:返回新生成的资源对象

4.PUT/collection/resource返回完整的资源对象

5.PATCH//collection/resource返回完整的资源对象

6.DELECT//collection/resource返回一个空文档

 

8. 超媒体(Hypermedia API)

 

9.其余

服务器返回的数据格式,应该尽可能使用JSON,避免使用XML。

明确REST接口开发的核心任务之序列化Serialization

序列化:在数据存储于传送的部分是指将一个对象存储至一个储存媒介,能够是字节或是XML等格式,这程序被应用在不一样应用程序之间传送对象,以及服务器将对象储存到档案或数据库.相反的过程又称为反序列化
将程序中的一个数据结构类型转换为其余格式(字典JSONXML等)

反之:讲其余格式(字典JSONXML等)转换为程序中的数据,这个过程咱们称为反序列化

总结,:视图中须要作的最核心
1.将数据库数据序列化为前端锁须要的格式,并返回.
2.将前端发送的数据反序列化为模型类对象,并保存到数据库中

Django REST framework 简介

序列化和反序列化能够复用
增:效验请求数据>执行反序列化过程>保存数据库>将保存的对象序列化并返回
:判断要删除的数据是否存在.>执行数据库删除
:判断要修改的数据是否存在>效验请求的参数>执行反序列化过程>保存数据库>将保存的对象序列化并返回
:查询数据库>将数据序列化并返回
特色:
1.提供了定义序列化器Serializer的方法,能够快速根据Django ORM 或者其余库自动序列化/反序列化
2.提供了丰富的类视图MIXIN扩展类,简化视图的编写
3.丰富的定制层级:函数视图类视图试图结合到自动生成API,知足各类须要
4.多种身份认证和权限认证方式的支持
5.内置了限流系统
6.直观的API web界面
7.可扩展性 , 插件丰富

做者:SasukeN 

来源:CSDN 
原文:

https://blog.csdn.net/SasukeN/article/details/80906008 

 


 

Django REST framework 理解

识别图中二维码,领取python全套视频资料

相关文章
相关标签/搜索