Django REST framework 理解

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Django REST framework 理解

点击上方”python宝典”,关注获取python全套视频,

技术文章第一时间送达!

Django REST framework 理解

Web应用模式

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

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

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

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

认识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动词,对服务器端资源进行操作,实现”表现层状态转化”

表现层状态转化

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 

来源:CSDN 
原文:

Django REST framework 理解

识别图中二维码,欢迎关注python宝典

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Django REST framework 理解


 上一篇
计算机基础之计算机硬件系统 计算机基础之计算机硬件系统
点击上方”python宝典”,关注获取python全套视频, 技术文章第一时间送达! 一.计算机硬件系统概述所谓计算机硬件系统,就是指构成计算机看得见的,摸得着的实际物理设备。 常见的计算机硬件组成主要由下图各部件组成: 现代计算机的结
2021-04-05
下一篇 
django-rest-framework快速入门 django-rest-framework快速入门
点击上方”python宝典”,关注获取python全套视频, 技术文章第一时间送达! 前言:第一次接触django-rest-framework是在实习的时候。当时也不懂,看到视图用类方法写的感觉很牛逼的样子。因为官网是英文的,这对我的学习
2021-04-05