在使用Flask以及插件Flask-RESTful来开发RESTful API时,返回值和状态码的设计是非常重要的一个部分。对于初学者,在不使用responseerrorhandler()等装饰器时,经常会向发来的请求直接返回需要的数据,比如在没有找到请求的数据时:

return None

这显然是最为简便的一种写法。但是当我们希望统一所有的返回值为JSON格式时,这里需要一些小小的改动(假设希望返回名为student的数据):

return {'student': None}

这样我们就可以返回一个合法的以JSON表示的结果。

但是,这里还有一个小问题,虽然我们的本意是没有找到任何请求的数据,但返回码仍然是默认的200,这显然是不合理的,既容易造成误解也不利于之后的日志分析。因此,简单添加404即可:

return {'student': None}, 404

在此基础上还可以做一个灵活的拓展,假设我们根据发来的请求对数据库进行了检索,并将结果赋给名为student的变量。如果搜索结果即最后的student为空,则状态码为404,否则为200。比较pythonic的写法为:

return {'student': student}, 200 if student is not None else 404

python flask 返回值 状态码 设置相关推荐

  1. python网页查询然后返回结果_python(30) 获取网页返回的状态码,状态码对应问题查询...

    获取访问网页返回的状态码 html = requests.get(Url) respon= html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表请 ...

  2. python requests返回值为200 但是text无内容_接口测试入门神器 - Requests

    起源 众所周知,自动化测试是软件测试爱好者毕生探索的课题.我认为,只要把 接口测试 做好,你的自动化测试就至少成功了一半. 应部分热情读者要求,今天泰斯特跟大家一起了解 python 接口测试库- R ...

  3. 服务器返回常见状态码及意义

    状态代码由三位数字组成,第一个数字定义了响应的类别,且有5种可能取值: 1XX:指示信息–表示请求已接收,继续处理 2XX:成功–表示请求已被成功接收.理解.接受 3XX:重定向–要完成请求必须进行更 ...

  4. 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )

    文章目录 前言 一.业务子函数接口定义要点 二.完整代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模型 : 两个指 ...

  5. request-promise 获取返回头信息_http返回的状态码 大全

    00 Continue 继续.客户端应继续其请求101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只能切换到更高级的协议,例如,切换到HTTP的新版本协议200 ...

  6. php 503解决办法,php设置页面返回503状态-php设置503http状态的方法-吾爱编程网

    最近有小伙伴问PHP的网页如何返回503的代码,其实返回这些状态码在开发的时候会经常用到,接下来吾爱编程为大家介绍一下php设置页面返回503状态方法,有需要的小伙伴可以参考一下: 1.503状态码定 ...

  7. vue 下载文件流和捕获后端返回的状态码和错误信息的方法

    文件流下载需要注意的是 responseType: 'blob' ,否则下载的文件不能正确打开.但是当数据库返回400时,捕获不到error的错误信息,因为responseType设置了固定的返回格式 ...

  8. 解析json格式请求返回500状态码的异常

    异常描述: (1)响应信息: (2)请求信息: (3)服务器中解析json所依赖的类的信息以及处理请求的逻辑 class Bedroom {public String desk;public Stri ...

  9. 安全狗php站点404,开启安全狗响应内容保护导致404返回200状态码的解决办法

    开启安全狗响应内容保护导致404返回200状态码的解决办法 2020-04-08 开启安全狗响应内容保护导致404状态码返回200的解决办法 今天无意中对www.tbadc.com的404错识做了一个 ...

最新文章

  1. SAP ECM的相关设定(ECN)
  2. 防止asp.net页面多次提交数据
  3. AT解析层的思路分析及代码实现
  4. VMware 怎么进入BIOS
  5. 【Python】PyCryptodome模块中5种AES加密模式介绍
  6. 四色着色问题 c语言编程,数据结构-图着色问题
  7. WordPress主题LensNews1.8模板源码,WP多功能新闻积分商城主题
  8. jboss 的debug启动4法
  9. centos activemq 集群配置 Networks of Brokers
  10. 最新实战讲解.htaccess文件rewrite规则
  11. 5.20 考试 20 未完
  12. vijos1846 [NOIP2013] 华容道【最短路】
  13. 魔兽世界服务器Trinitycore分析二:auth server的main函数
  14. 最好用的木门免费录单软件
  15. 北京50年代到90年代的春节老照片,终于找全了!
  16. 牛客小白月赛5-E-面积(area)(波尔约-格维也定理+皮克公式)
  17. 鸡兔同笼:35个头,94只脚,问鸡、兔各多少只?
  18. vue组件编写 组件库_一种玩具,可让您使用Vue组件编写歌曲
  19. 京东注册页面简单html代码,(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看...
  20. 中国新冠疫情数据可视化

热门文章

  1. 边缘计算 — 业务的需求特征
  2. MinGW 仿 linux 开发环境
  3. Mysql 获取当月和上个月第一天和最后一天的解决方案
  4. Spring思维导图,让Spring不再难懂(aop篇)
  5. iOS实现传递不定长的多个参数
  6. AIX 3D32B80D 错误
  7. [原创] 腾讯RTX二次开发相关的一些注意事项
  8. 第一章 用户及组的管理
  9. 面试必问一:Java 中 == 和 equals 的区别你知道吗
  10. 算法设计:UNION-FIND算法实现