Django REST framework API 指南(25):状态码
官方原文链接
本系列文章 github 地址
转载请注明出处
状态码
不建议在你的响应中使用裸露(直接使用数字)的状态码。 REST framework 包含一组命名常量,你可以使用它们使代码更加清晰易读。
from rest_framework import status
from rest_framework.response import Responsedef empty_view(self):content = {'please move along': 'nothing to see here'}return Response(content, status=status.HTTP_404_NOT_FOUND)
复制代码
下面列出了 status
模块中包含的全部 HTTP 状态码。
该模块还包含一组帮助函数,用于测试状态码是否在给定范围内。
from rest_framework import status
from rest_framework.test import APITestCaseclass ExampleTestCase(APITestCase):def test_url_root(self):url = reverse('index')response = self.client.get(url)self.assertTrue(status.is_success(response.status_code))
复制代码
信息 - 1xx
这类状态码表示临时响应。默认情况下,REST framework 中没有使用 1xx 状态码。
HTTP_100_CONTINUE
HTTP_101_SWITCHING_PROTOCOLS
复制代码
成功 - 2xx
这类状态码表明客户端的请求已被成功接收,理解和接受。
HTTP_200_OK
HTTP_201_CREATED
HTTP_202_ACCEPTED
HTTP_203_NON_AUTHORITATIVE_INFORMATION
HTTP_204_NO_CONTENT
HTTP_205_RESET_CONTENT
HTTP_206_PARTIAL_CONTENT
HTTP_207_MULTI_STATUS
复制代码
重定向 - 3xx
这类状态码表明用户代理需要采取进一步行动来完成请求。
HTTP_300_MULTIPLE_CHOICES
HTTP_301_MOVED_PERMANENTLY
HTTP_302_FOUND
HTTP_303_SEE_OTHER
HTTP_304_NOT_MODIFIED
HTTP_305_USE_PROXY
HTTP_306_RESERVED
HTTP_307_TEMPORARY_REDIRECT
复制代码
客户端错误 - 4xx
4xx 状态码适用于客户端出现错误的情况。除了响应 HEAD 请求之外,服务器应该包含一个错误情况说明的实体,以及它是临时的还是永久的。
HTTP_400_BAD_REQUEST
HTTP_401_UNAUTHORIZED
HTTP_402_PAYMENT_REQUIRED
HTTP_403_FORBIDDEN
HTTP_404_NOT_FOUND
HTTP_405_METHOD_NOT_ALLOWED
HTTP_406_NOT_ACCEPTABLE
HTTP_407_PROXY_AUTHENTICATION_REQUIRED
HTTP_408_REQUEST_TIMEOUT
HTTP_409_CONFLICT
HTTP_410_GONE
HTTP_411_LENGTH_REQUIRED
HTTP_412_PRECONDITION_FAILED
HTTP_413_REQUEST_ENTITY_TOO_LARGE
HTTP_414_REQUEST_URI_TOO_LONG
HTTP_415_UNSUPPORTED_MEDIA_TYPE
HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE
HTTP_417_EXPECTATION_FAILED
HTTP_422_UNPROCESSABLE_ENTITY
HTTP_423_LOCKED
HTTP_424_FAILED_DEPENDENCY
HTTP_428_PRECONDITION_REQUIRED
HTTP_429_TOO_MANY_REQUESTS
HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE
HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS
复制代码
服务器错误 - 5xx
5xx 表示服务器意识到其发生错误或无法执行请求的情况。除了响应 HEAD 请求之外,服务器应该包含一个错误情况说明的实体,以及它是临时的还是永久的。
HTTP_500_INTERNAL_SERVER_ERROR
HTTP_501_NOT_IMPLEMENTED
HTTP_502_BAD_GATEWAY
HTTP_503_SERVICE_UNAVAILABLE
HTTP_504_GATEWAY_TIMEOUT
HTTP_505_HTTP_VERSION_NOT_SUPPORTED
HTTP_507_INSUFFICIENT_STORAGE
HTTP_511_NETWORK_AUTHENTICATION_REQUIRED
复制代码
帮助函数
以下帮助函数可用于识别响应代码的类别。
is_informational() # 1xx
is_success() # 2xx
is_redirect() # 3xx
is_client_error() # 4xx
is_server_error() # 5xx
复制代码
Django REST framework API 指南(25):状态码相关推荐
- Django REST framework API 指南(2):响应
Django REST framework API 指南(1):请求 Django REST framework API 指南(2):响应 Django REST framework API 指南(3 ...
- Django REST framework API 指南(12):验证器
官方原文链接 本系列文章 github 地址 转载请注明出处 验证器 大多数情况下,您在 REST framework 中处理验证时,只需依赖默认的字段验证,或者在序列化类或字段类上编写明确的验证方法 ...
- Django REST framework API 指南(11):序列化·关系
官方原文链接 本系列文章 github 地址 转载请注明出处 Serializer 关系 关系字段用于表示模型关系. 它们可以应用于 ForeignKey,ManyToManyField 和 OneT ...
- Django REST framework API开发
REST 介绍 RESTful API 设计 实现API的两种方式 FBV 视图函数 urlpatterns = [url(r'^user/$', views.user),url(r'^user/ad ...
- Django REST Framework API Guide 01
之前按照REST Framework官方文档提供的简介写了一系列的简单的介绍博客,说白了就是翻译了一下简介,而且翻译的很烂.到真正的生产时,就会发现很鸡肋,连熟悉大概知道rest framework都 ...
- php返回200,关于API 使用 HTTP 状态码还是全部返回 200
现在的项目api想用restful风格,然后目前的api接口返回规范:所有成功接口返回{status:200,msg:'',data:{}},出错接口返回{status:403,msg:'',data ...
- SpringCloud工作笔记048---RESTful API 中 HTTP 状态码的定义_以及把RESTFul版本号_放到http协议header中_以及RestFul设计时的两个误区
JAVA技术交流QQ群:170933152 ------------------------- RESTful架构有一些典型的设计误区. 最常见的一种设计错误,就是URI包含动词.因为"资源 ...
- API的HTTP状态码设计
一.现状: 前天与后端开发人员讨论了API接口的设计.有以下三种方案: 1.原始HTTTP协议 HTTP状态码就是该Request的状态码,不应该与后端业务混在一起(这也是一部分人使用该方案的理由). ...
- Django REST Framework API Guide 02
本节大纲 1.Generic Views 2.ViewSets 1.Generic Views CBV的主要的一个优点就是极大的允许了对于代码的从用.自然,rest framework取其优势,提供 ...
最新文章
- Ubuntu13.04 配置smb服务器-new
- mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库
- MySQL多表查询实例
- 2011年全国软件大赛模拟题及参考答案(Java本科组)
- 快速完全删除node_modules
- 服务端和客户端证书各种组合下对访问者(浏览器/中间人)的影响
- spring 单例 获取多例的位_Spring系列第6篇:玩转bean scope,避免跳坑里!
- 程序员谈谈我的职场观(三)
- 小齐是如何提高自己的「编程能力」的?
- 又一家网贷平台宣布退出:已在美股上市,累积借贷金额近三千亿
- iPhone 12 Pro长这样:重回iPhone 5外观 心动了
- 机器学习算法总结之支持向量机(五)
- python表示语句块采用_Python学习日记
- mod libs 课堂
- 2018春招-赛码网-例题-不确定输入组数的多组数列求和
- arduino中print()跟write()最大区别和注意事项 (最详细)
- 天线越大越好吗_路由器的天线是不是越多越好?告知你真实答案,很多人都买错了...
- 桌面点右键,白屏怎么办
- 中小企业会计核算存在的问题及对策
- 主成分分析实战篇:南极考察站检测数据降维
热门文章
- AP计算机科学有几门,2017新增AP计算机科学考试科目
- c语言各种编程风格 微软 gnu,编程规范-c语言的编程风格
- python出现套接字创建不成功_python套接字协议不支持 - python
- kudu接受kafka消息_Kafka入门详解
- php无限极分类并添加指定值,PHP实现无限极分类的两种方式,递归和引用
- python解释器工作原理_Python解释器执行原理
- 【 Verilog HDL 】不同抽象级别的Verilog HDL模型之门级结构描述
- php下curl与file_get_contents性能对比
- Linux学习 - 目录的权限操作
- Android UI学习 - Linear Layout, RelativeLayout