1 .先后端不分离:在先后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端须要控制前端的展现,前端与厚度那的耦合度很高.前端
这种应用模式比较合适纯网页应用,可是后端对接APP时,App可能并不须要后端返回一个HTML网页,二仅仅是数据自己,因此后端本来返回网页的接口不在适用前端APP应用,为了对接APP后端嗨需再开发一套接口java
2 先后端分离:在先后端分离的应用模式中,后端仅返回前端所需的数据,不在渲染HTML页面,不在控制前端的效果,只用前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端本身决定,网页有网页的处理方式,APP有APP的处理方式,但不管哪一种前端,所须要的数据基本相同,后端仅需开发一套逻辑对外提供数据便可.
在先后端分离的应用模式中,前端与后端的耦合度相对较低python
在先后端分离的应用模式中,咱们一般将后端开发的每一视图都成为一个接口,或者API,前端经过访问接口来对数据进行增删改查web
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。
序列化:在数据存储于传送的部分是指将一个对象存储至一个储存媒介,能够是字节或是XML等格式,这程序被应用在不一样应用程序之间传送对象,以及服务器将对象储存到档案或数据库.相反的过程又称为反序列化
将程序中的一个数据结构类型转换为其余格式(字典JSONXML等)
反之:讲其余格式(字典JSONXML等)转换为程序中的数据,这个过程咱们称为反序列化
总结,:视图中须要作的最核心
1.将数据库数据序列化为前端锁须要的格式,并返回.
2.将前端发送的数据反序列化为模型类对象,并保存到数据库中
序列化和反序列化能够复用
增:效验请求数据>执行反序列化过程>保存数据库>将保存的对象序列化并返回
删:判断要删除的数据是否存在.>执行数据库删除
改:判断要修改的数据是否存在>效验请求的参数>执行反序列化过程>保存数据库>将保存的对象序列化并返回
查:查询数据库>将数据序列化并返回
特色:
1.提供了定义序列化器Serializer的方法,能够快速根据Django ORM 或者其余库自动序列化/反序列化
2.提供了丰富的类视图MIXIN扩展类,简化视图的编写
3.丰富的定制层级:函数视图类视图试图结合到自动生成API,知足各类须要
4.多种身份认证和权限认证方式的支持
5.内置了限流系统
6.直观的API web界面
7.可扩展性 , 插件丰富
做者:SasukeN
来源:CSDN
原文:https://blog.csdn.net/SasukeN/article/details/80906008
识别图中二维码,领取python全套视频资料