官方原文链接
本系列文章 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):状态码相关推荐

  1. Django REST framework API 指南(2):响应

    Django REST framework API 指南(1):请求 Django REST framework API 指南(2):响应 Django REST framework API 指南(3 ...

  2. Django REST framework API 指南(12):验证器

    官方原文链接 本系列文章 github 地址 转载请注明出处 验证器 大多数情况下,您在 REST framework 中处理验证时,只需依赖默认的字段验证,或者在序列化类或字段类上编写明确的验证方法 ...

  3. Django REST framework API 指南(11):序列化·关系

    官方原文链接 本系列文章 github 地址 转载请注明出处 Serializer 关系 关系字段用于表示模型关系. 它们可以应用于 ForeignKey,ManyToManyField 和 OneT ...

  4. Django REST framework API开发

    REST 介绍 RESTful API 设计 实现API的两种方式 FBV 视图函数 urlpatterns = [url(r'^user/$', views.user),url(r'^user/ad ...

  5. Django REST Framework API Guide 01

    之前按照REST Framework官方文档提供的简介写了一系列的简单的介绍博客,说白了就是翻译了一下简介,而且翻译的很烂.到真正的生产时,就会发现很鸡肋,连熟悉大概知道rest framework都 ...

  6. php返回200,关于API 使用 HTTP 状态码还是全部返回 200

    现在的项目api想用restful风格,然后目前的api接口返回规范:所有成功接口返回{status:200,msg:'',data:{}},出错接口返回{status:403,msg:'',data ...

  7. SpringCloud工作笔记048---RESTful API 中 HTTP 状态码的定义_以及把RESTFul版本号_放到http协议header中_以及RestFul设计时的两个误区

    JAVA技术交流QQ群:170933152 ------------------------- RESTful架构有一些典型的设计误区. 最常见的一种设计错误,就是URI包含动词.因为"资源 ...

  8. API的HTTP状态码设计

    一.现状: 前天与后端开发人员讨论了API接口的设计.有以下三种方案: 1.原始HTTTP协议 HTTP状态码就是该Request的状态码,不应该与后端业务混在一起(这也是一部分人使用该方案的理由). ...

  9. Django REST Framework API Guide 02

    本节大纲 1.Generic Views 2.ViewSets  1.Generic Views CBV的主要的一个优点就是极大的允许了对于代码的从用.自然,rest framework取其优势,提供 ...

最新文章

  1. Ubuntu13.04 配置smb服务器-new
  2. mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库
  3. MySQL多表查询实例
  4. 2011年全国软件大赛模拟题及参考答案(Java本科组)
  5. 快速完全删除node_modules
  6. 服务端和客户端证书各种组合下对访问者(浏览器/中间人)的影响
  7. spring 单例 获取多例的位_Spring系列第6篇:玩转bean scope,避免跳坑里!
  8. 程序员谈谈我的职场观(三)
  9. 小齐是如何提高自己的「编程能力」的?
  10. 又一家网贷平台宣布退出:已在美股上市,累积借贷金额近三千亿
  11. iPhone 12 Pro长这样:重回iPhone 5外观 心动了
  12. 机器学习算法总结之支持向量机(五)
  13. python表示语句块采用_Python学习日记
  14. mod libs 课堂
  15. 2018春招-赛码网-例题-不确定输入组数的多组数列求和
  16. arduino中print()跟write()最大区别和注意事项 (最详细)
  17. 天线越大越好吗_路由器的天线是不是越多越好?告知你真实答案,很多人都买错了...
  18. 桌面点右键,白屏怎么办
  19. 中小企业会计核算存在的问题及对策
  20. 主成分分析实战篇:南极考察站检测数据降维

热门文章

  1. AP计算机科学有几门,2017新增AP计算机科学考试科目
  2. c语言各种编程风格 微软 gnu,编程规范-c语言的编程风格
  3. python出现套接字创建不成功_python套接字协议不支持 - python
  4. kudu接受kafka消息_Kafka入门详解
  5. php无限极分类并添加指定值,PHP实现无限极分类的两种方式,递归和引用
  6. python解释器工作原理_Python解释器执行原理
  7. 【 Verilog HDL 】不同抽象级别的Verilog HDL模型之门级结构描述
  8. php下curl与file_get_contents性能对比
  9. Linux学习 - 目录的权限操作
  10. Android UI学习 - Linear Layout, RelativeLayout