博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django REST framework API 指南(25):状态码
阅读量:6938 次
发布时间:2019-06-27

本文共 2387 字,大约阅读时间需要 7 分钟。

状态码

不建议在你的响应中使用裸露(直接使用数字)的状态码。 REST framework 包含一组命名常量,你可以使用它们使代码更加清晰易读。

from rest_framework import statusfrom 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 statusfrom 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_CONTINUEHTTP_101_SWITCHING_PROTOCOLS 复制代码

成功 - 2xx

这类状态码表明客户端的请求已被成功接收,理解和接受。

HTTP_200_OKHTTP_201_CREATEDHTTP_202_ACCEPTEDHTTP_203_NON_AUTHORITATIVE_INFORMATIONHTTP_204_NO_CONTENTHTTP_205_RESET_CONTENTHTTP_206_PARTIAL_CONTENTHTTP_207_MULTI_STATUS复制代码

重定向 - 3xx

这类状态码表明用户代理需要采取进一步行动来完成请求。

HTTP_300_MULTIPLE_CHOICESHTTP_301_MOVED_PERMANENTLYHTTP_302_FOUNDHTTP_303_SEE_OTHERHTTP_304_NOT_MODIFIEDHTTP_305_USE_PROXYHTTP_306_RESERVEDHTTP_307_TEMPORARY_REDIRECT复制代码

客户端错误 - 4xx

4xx 状态码适用于客户端出现错误的情况。除了响应 HEAD 请求之外,服务器应该包含一个错误情况说明的实体,以及它是临时的还是永久的。

HTTP_400_BAD_REQUESTHTTP_401_UNAUTHORIZEDHTTP_402_PAYMENT_REQUIREDHTTP_403_FORBIDDENHTTP_404_NOT_FOUNDHTTP_405_METHOD_NOT_ALLOWEDHTTP_406_NOT_ACCEPTABLEHTTP_407_PROXY_AUTHENTICATION_REQUIREDHTTP_408_REQUEST_TIMEOUTHTTP_409_CONFLICTHTTP_410_GONEHTTP_411_LENGTH_REQUIREDHTTP_412_PRECONDITION_FAILEDHTTP_413_REQUEST_ENTITY_TOO_LARGEHTTP_414_REQUEST_URI_TOO_LONGHTTP_415_UNSUPPORTED_MEDIA_TYPEHTTP_416_REQUESTED_RANGE_NOT_SATISFIABLEHTTP_417_EXPECTATION_FAILEDHTTP_422_UNPROCESSABLE_ENTITYHTTP_423_LOCKEDHTTP_424_FAILED_DEPENDENCYHTTP_428_PRECONDITION_REQUIREDHTTP_429_TOO_MANY_REQUESTSHTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGEHTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS复制代码

服务器错误 - 5xx

5xx 表示服务器意识到其发生错误或无法执行请求的情况。除了响应 HEAD 请求之外,服务器应该包含一个错误情况说明的实体,以及它是临时的还是永久的。

HTTP_500_INTERNAL_SERVER_ERRORHTTP_501_NOT_IMPLEMENTEDHTTP_502_BAD_GATEWAYHTTP_503_SERVICE_UNAVAILABLEHTTP_504_GATEWAY_TIMEOUTHTTP_505_HTTP_VERSION_NOT_SUPPORTEDHTTP_507_INSUFFICIENT_STORAGEHTTP_511_NETWORK_AUTHENTICATION_REQUIRED复制代码

帮助函数

以下帮助函数可用于识别响应代码的类别。

is_informational()  # 1xxis_success()        # 2xxis_redirect()       # 3xxis_client_error()   # 4xxis_server_error()   # 5xx复制代码

转载地址:http://sybnl.baihongyu.com/

你可能感兴趣的文章
图片切换控件
查看>>
MYSQL 執行 BASH SCRIPT 出現 WARNING: USING A PASSWORD ON THE COMMAND LINE INTERFACE CAN BE INSECURE...
查看>>
解决php的It is not safe to rely on the system’s timezone settings的问题
查看>>
MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...
查看>>
【学神-RHEL7】P2-Python流程控制
查看>>
启动或重启DNS服务时,卡在Generating /etc/rndc.key:上很长时间
查看>>
视频专辑:Python系列视频教程
查看>>
Linux内核更新 linux3.10.tar.gz Redhat 6.0
查看>>
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
查看>>
zabbix自定义key监控mysql重要参数的运行情况
查看>>
CISCO 多协议,多进程,路由重分布及其路由策略应用
查看>>
ios开发备忘录十
查看>>
windows下 iis配置php5.6
查看>>
谷歌火狐浏览器保存网页为htm格式
查看>>
sqlserver表和库管理
查看>>
Ceph安装QEMU报错:User requested feature rados block device configure was not able to find it
查看>>
我的友情链接
查看>>
linux中 qt5 的环境搭建
查看>>
Qt 中调用cmd不显示窗口
查看>>
HBase原理和优化
查看>>