Django REST Framework概述
什么是REST
REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”。这里说的表征性,就是指资源,通常我们称为资源状态转移。
什么是资源?
网络上所有的文本、图片、视频等实体,都是资源。除了实体,还可以是抽象概念,比如某人的手机号、住址等。找到某个资源,需要URL,统一资源定位符。
URL和URI
URI是统一资源标志符。URL用来描述地址,URI用来对资源进行标识。URL是URI的一个子集,通过定位的方式实现URI
RESTful规范
面向资源
每个URL代表一种资源,URL中尽量不要用动词,要用名词
根据请求方式不同,进行不同的操作
GET: 从服务器取出资源
POST: 在服务器新建一个资源
PUT: 在服务器更新资源(客户端提供改变后的完整资源)
PATCH: 在服务器更新资源(客户端提供改变的属性)
DELETE:从服务器删除资源
在URL中体现版本
https://www.cnblogs.com/v1/myclass
在URL中体现是否是API
https://www.cnblogs.com/api/vi/myclass
尽量使用HTTPS
https://www.cnblogs.com/api/vi/myclass
响应返回规范
{
code: 1000, // 响应码
msg: "ok", // 描述信息
data:{ // 数据
id:1,
name:'小强',
depart_id:http://www.luffycity.com/api/v1/depart/8
}
}
举例:
例如动物园中有很多的动物,如何进行增删改查?
- 查找一个老虎:https://www.zoo.com/api/v1/animal?class=tiger&id=1 GET
- 查找所有老虎:https://www.zoo.com/api/v1/animal?class=tiger GET
- 增加一个老虎:https://www.zoo.com/api/vi/animal POST
- 删除一个老虎:https://www.zoo.com/api/vi/animal DELETE
- 修改一个老虎的某个属性:https://www.zoo.com/api/vi/animal PATCH
- 修改一个老虎的所有属性:https://www.zoo.com/api/vi/animal PUT
我们可以看到URL中全部都是名词,对资源的操作(动作)体现在请求方式上,体现了面向资源的思想。
Django REST Framework
是基于Django的RESTful实现
下载
pip3 install djangorestframework
settings.py
INSTALLED_APPS = [
...
'rest_framework',
]
urls.py
from DemoApp.views import BookView
urlpatterns = [
path('list', BookView.as_view()),
]
views.py
from rest_framework.views import APIView
from rest_framework.response import Response class BookView(APIView):
def get(self, request, *args, **kwargs):
return Response('GET请求,响应内容') def post(self, request, *args, **kwargs):
return Response('POST请求,响应内容') def put(self, request, *args, **kwargs):
return Response('PUT请求,响应内容')
DRF主要功能和组件
Django REST Framework概述的更多相关文章
- 利用 Django REST framework 编写 RESTful API
利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framewor ...
- Django Rest Framework源码剖析(三)-----频率控制
一.简介 承接上篇文章Django Rest Framework源码剖析(二)-----权限,当服务的接口被频繁调用,导致资源紧张怎么办呢?当然或许有很多解决办法,比如:负载均衡.提高服务器配置.通过 ...
- Django REST Framework 学习笔记
前言: 基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无 ...
- Django REST Framework(一) Serializer和ModelSerializer
REST Framework概述 Django REST framework是一套基于Django的REST框架,是一个用于构建Web API的功能强大且灵活的工具包. 1.RESTful 简述Rep ...
- 使用django rest framework
django 刚接触,想做一些restful api , google了一下,发现有现成的框架.Django REST framework. 对使用做下记录: 安装 从http://django-re ...
- SharePoint Framework 概述
博客地址:http://blog.csdn.net/FoxDave 本文翻译自新出的SharePoint Framework概述介绍文章,原文地址:http://dev.office.com/sh ...
- django rest framework 入门
django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangop ...
- django rest framework
Django-Rest-Framework 教程: 4. 验证和权限 作者: Desmond Chen, 发布日期: 2014-06-01, 修改日期: 2014-06-02 到目前为止, 我们的AP ...
- django rest framework csrf failed csrf token missing or incorrect
django rest framework csrf failed csrf token missing or incorrect REST_FRAMEWORK = { 'DEFAULT_AUTHEN ...
随机推荐
- (转) Mac下面的SecureCRT(附破解方案) 更新到最新的7.3.7
Mac下面的SecureCRT(附破解方案) 更新到最新的7.3.7 转自 http://blog.csdn.net/skykingf/article/details/17450561 http:// ...
- Delphi编写后台监控软件
Delphi编写后台监控软件 文章来源:Delphi程序员之家 后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任 ...
- 适AT maven多个子项目、父项目之间的引用问题
适AT maven多个子项目.父项目之间的引用问题 在项目时用到maven管理项目,在一个就项目的基础上开发新的项目:关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己 ...
- 如何解决:修改.gitignore后,不生效
1.git rm -r --cached . 删除缓存 2.git add . 添加要提交的文件 3.git commit -m "update .gitignore" 提交 ...
- CSDN的验证码,为什么要这样呢
总是有连着的部分
- Java开发系列-JSP
概述 JSP是java 服务器页面,它运行在服务器端,本质上就是一个serlvet,产生的java文件和class保留在tomcat的word目录下. JSP主要作用是将内容的生成与页面相分离. JS ...
- nginx 配置文件备份 nginx.conf and vhosts
bogon:vhosts xingchong$ brew services restart nginx Stopping `nginx`... (might take a while) ==> ...
- [JZOJ4788] 【NOIP2016提高A组模拟9.17】序列
题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四). 问最少的操作次数. 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题 ...
- Python面向对象学习
以下面例子作为面向对象基础介绍,类比java里的面向对象既可以,大同小异 class Employee(): raiseAmount=1.04 employeeNum= def __init__(se ...
- java扫描某个包下的所有java类并加载
最近在学习java的反射和注解,实际情景中需要扫描某个包下的所有java类,然后使用类加载器加载类. 基本思路,获得程序的路径扫描src下某个包内的子包和java类,实现也比较简单. 运行环境:win ...