两个基类,五大扩展类,还有九个视图子类
谈论这几个之前我们应该也要首先去了解一下rest_framework.
一、什么是rest_framework
它是基于Django的,帮助我们快速开发符合RESTful规范的接口框架。
安装方式有很多种,可以通过pip,或者在pycharm中安装也可以
至于什么是restful规范可以自行百度一下·····
一直在说 Django REST framework,那它到底是什么,你是怎么理解的呢?我查了一些资料,对Django REST framework有了一些粗浅的理解,记录下来。(通常简称Django REST framework为DRF框架)。
☞ github链接。
从字面理解开始
仅从字面意思理解的话,Django和framework指的是Django,框架。那REST呢?
REST是Representational State Transfer的简称,中文翻译为“表现层状态转化”,REST与技术无关,代表的是一种软件架构风格,遵循REST的架构风格,称为RESTful。
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。
他在介绍他的论文时说到:
“网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。”
Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。
如果我把rest译为:使人轻松的,让人得到休息的,不知道他会怎么想,哈哈,但是为了便于理解,我们不妨再暂且这么认为。
RESTful架构风格,因其可扩展性和简单性受到越来越多的架构师和开发者们的青睐,时至今日,RESTful架构风格已成为企业级服务的标配。
RESTful
现在我们来到了RESTful,RESTful是什么呢?RESTful有三个基本概念和一些显著特点。
资源
首先需要注意的是,REST的名称"表现层状态转化"中,省略了主语,主语就是资源(Resources),资源是网络上的一个实体,或者说是网络上的一个具体信息,可以是文本、图片、音视频等。RESTful 架构风格的服务是围绕资源展开的,是典型的ROA(面向资源架构)。
表现层
“资源"可以有多种外在表现形式,我们把"资源"具体呈现出来的形式,叫做它的"表现层”(Representation)。如:文本可以是txt格式,图片可以是jpg、png格式等,JSON是现在最常用的资源表示格式。
状态转化
访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。
互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer),而这种转化是建立在表现层之上的。
特点:统一接口
RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete)操作,分别对应于HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。
HTTP动词 SQL命令 含义
GET SELECT 从服务器取出资源(一项或多项)
POST CREATE 在服务器新建一个资源
PUT UPDATE 在服务器更新资源
DELETE DELETE 从服务器删除资源
PATCH UPDATE 在服务器更新资源
HEAD ----- 获取资源的元数据
OPTIONS ----- 获取信息,关于资源的哪些属性是客户端可以改变的
特点:URI(统一资源定位符)
可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。
一般的,每个资源至少有一个URI与之对应,最典型的URI即URL。
特点:路径(Endpoint)
资源作为网址,只能有名词,不能有动词,而且所用的名词往往与数据库的表名对应。
以下是不好的例子:
/getProducts