官方原文链接
本系列文章 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. Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
  2. 大数据与智能算法(二-应用级技术)-SMU在线学习笔记
  3. boost::gil::scoped_channel_value用法的测试程序
  4. HDU 1875 畅通工程再续
  5. ni软件管理器_NI 技术支持丨我的 NI 硬件设备不能被识别,怎么办?Windows
  6. mysql 源码 缓存_MySQL源码:MYSQL存储过程/函数的分析原理及缓存机制
  7. android打印intent flag,Android flag详解
  8. 阿里云Quick BI——让人人都成为分析师
  9. python并发循环_在Python中模拟一个并发循环?
  10. 批量下载CSS中的图片
  11. 用小程序完成简单的详情列表功能
  12. Builder模式创建实体类
  13. 如何把大写金额变为小写数字_如何将小写金额变成大写数值
  14. vue2百度地图修改比例尺位置
  15. java观察者模式举例_写个观察者模式(Observer Pattern)的例子
  16. TDengine 单节点Cluster not ready( 群集未就绪) 异常问题分析及解决方案
  17. Android 获取摄像头像素,个数
  18. python实践报告总结_关于开发Python项目的心得总结
  19. 计算机排名次怎么操作,Excel表格怎么排名次?
  20. 统一通信概念鱼龙混杂

热门文章

  1. python统计文件行数检测字符串_python统计文件中的字符串数目示例
  2. 关于日常使用的命令解读:ifconfig
  3. 用c语言实现去bmp图片的背景,菲律宾博牛网-官方网站
  4. vue中如何加入横线_在word文档中如何快速添加页眉横线和删除页眉横线?
  5. Android混合推送,MUI框架-推送配置核心代码-个推推送
  6. 安装itunes需要管理员身份_Windows 10 在microsoft store 微软商店里安装的itunes如何更改备份位置...
  7. GT Transceiver中的重要时钟及其关系(2)单个外部参考时钟使用模型
  8. 固态器件理论(10)半导体制造技术
  9. 固态器件理论(2)价和晶体结构
  10. 周期信号的傅里叶变换(精彩)