服务器这种后台返回的数据只能是string,json或者是文件类型,对应Html的解析文件类型

无法返回自定义的元组,只能返回规定好的元组,说白了只第一个元素有效

  1. 所有返回前台的内容其实都应该是Response的对象或者其子类,我们看到如果返回的是字符串直接可以写成return u'字符串内容'的形式,但是其实这个字符串也是经过了Response包装的:return Response(u'字符串')
  2. 我们看一段代码:
  3.  
  4. # coding: utf-
  5.  
  6. from flask import Flask, Response
  7.  
  8. app = Flask(__name__) # type: Flask
  9. app.debug = True
  10.  
  11. @app.route('/')
  12. def hello_world():
  13. return 'Hello World!'
  14.  
  15. @app.route('/login/')
  16. def login():
  17. return Response(u'login')
  18.  
  19. if __name__ == '__main__':
  20. app.run()
  21.  
  22. 代码里我新建了一个login函数,返回的就是用Response包装后的字符串,访问地址可以看到页面打印了login
  23.  
  24. 我们有时候需要返回数组、字典之类的数据,但是数组或者字典这些数据是不能直接return的。这个时候怎么办呢?答案就是你必须将数组或字典转换成json后再返回(这就是为什么我们做接口测试的时候传参前用json.loads()将字符串转换成字典的原因了),因为json就是一个字符串。
  25.  
  26. 数组或字典转换成json的函数叫做jsonify,你需要先导入from flask import jsonify或者像船长下面代码里写的那样,一下子导入好几个库:
  27.  
  28. # coding: utf-
  29.  
  30. from flask import Flask, Response, jsonify
  31.  
  32. app = Flask(__name__) # type: Flask
  33. app.debug = True
  34.  
  35. @app.route('/')
  36. def hello_world():
  37. return 'Hello World!'
  38.  
  39. @app.route('/login/')
  40. def login():
  41. dict1 = {"name": "Warren"}
  42. return jsonify(dict1)
  43.  
  44. if __name__ == '__main__':
  45. app.run()
  46. 上面代码里`dict1`的数据类型是一个字典,我们通过`jsonify()`将其转换成了`json`,就可以成功返回了,去页面,看到:
  47.  
  48. 除了字符串以外,还可以返回元组,但是返回元组是有要求的,元组内容包括三个参数:responsestatus_codeheaders,其中:
  49.  
  50. response指页面打印信息,可以是字符串或Response对象
  51.  
  52. status_code指状态码,成功200,找不到页面404等等
  53.  
  54. headers指信息头
  55.  
  56. # coding: utf-
  57.  
  58. from flask import Flask, Response, jsonify
  59.  
  60. app = Flask(__name__) # type: Flask
  61. app.debug = True
  62.  
  63. @app.route('/')
  64. def hello_world():
  65. return 'Hello World!'
  66.  
  67. @app.route('/login/')
  68.  
  69. def login():
  70. dict1 = {"name": "Warren"}
  71. return jsonify(dict1)
  72.  
  73. @app.route('/set/')
  74. def myset():
  75.  
  76. return u'返回元组', , {"name": "Warren"}
  77.  
  78. if __name__ == '__main__':
  79. app.run()
  80. 看上面代码的myset函数,我return了一个元组(单个值的元组可以不写括号,而且如果你加上括号,pycharm会有黄线提醒你remove redundant parentheless,意思就是去掉多余的括号)。
  81.  
  82. 然后我们到页面访问/set/这个页面,打开F12就是开发者工具,然后刷新页面:

  1.  

元组

  1. demo.py(函数返回多个值(元组)):
  2.  
  3. # 定义函数,有多个返回值(返回元组)
  4. def measure():
  5. """测量温度和湿度"""
  6.  
  7. print("测量开始...")
  8. temp =
  9. wetness =
  10. print("测量结束...")
  11.  
  12. # 元组-可以包含多个数据,因此可以使用元组让函数一次返回多个值
  13. # 如果函数返回的类型是元组,小括号可以省略
  14. # return (temp, wetness)
  15. return temp, wetness # 小括号可以省略
  16.  
  17. # 元组
  18. result = measure()
  19. print(result) # (, )
  20.  
  21. # 需要单独的处理温度或者湿度 - 不方便
  22. print(result[]) #
  23. print(result[]) #
  24.  
  25. # 如果函数返回的类型是元组,同时希望单独的处理元组中的元素
  26. # 可以使用多个变量,一次接收函数的返回结果
  27. # 注意:使用多个变量接收结果时,变量的个数应该和元组中元素的个数保持一致
  28. gl_temp, gl_wetness = measure() # 接受函数多个返回值
  29.  
  30. print(gl_temp) #
  31. print(gl_wetness) #
  32. demo.py(利用元组交换变量值):
  33.  
  34. a =
  35. b =
  36.  
  37. # 解法1:-使用其他变量
  38. # c = a
  39. # a = b
  40. # b = c
  41.  
  42. # 解法2:-不使用其他的变量
  43. # a = a + b
  44. # b = a - b
  45. # a = a - b
  46.  
  47. # 解法3:-Python 专有
  48. # a, b = (b, a)
  49. # 提示:等号右边是一个元组,只是把小括号省略了
  50. a, b = b, a
  51.  
  52. print(a) #
  53. print(b) #
  54.  
  55. ————————————————
  56. 版权声明:本文为CSDN博主「houyanhua1」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
  57. 原文链接:https://blog.csdn.net/houyanhua1/article/details/83999767

flask返回数据类型的更多相关文章

  1. mybatis返回数据类型为map,值为null的key没返回

    创建mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  2. 11月15日下午 ajax返回数据类型为XML数据的处理

    ajax返回数据类型为XML数据的处理 /*XML:可扩展标记语言 HTML:超文本标记语言 标签:<标签名></标签名> 特点: 1.必须要有一个根 2.标签名自定义 3.对 ...

  3. 11月13日上午ajax返回数据类型为JSON数据的处理

    ajax返回数据类型为JSON数据的处理 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...

  4. WebAPI返回数据类型

    最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请求返回的数据都是JSON格式的, ...

  5. WebAPI返回数据类型解惑

    本文来自:http://www.cnblogs.com/lzrabbit/archive/2013/03/19/2948522.html 最近开始使用WebAPI,上手很容易,然后有些疑惑 1.Web ...

  6. WebAPI返回数据类型解惑[转]

    最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请求返回的数据都是JSON格式的, ...

  7. 使用jquery、ajax不刷新页面打印表格(返回数据类型text、json);

    效果图: 一:返回数据是text时 1.表单代码: <body> <form action="#" method="post"> 姓名: ...

  8. MVC4.0 WebApi如何自定义返回数据类型

    1.客户端可以通过HTTP Accept消息头来通知服务器客户端想要什么样的MIME类型数据,例如:application/json则代表告诉服务器想要的是Json数据 2.服务器端撇开客户端的请求类 ...

  9. Asp.Net WebAPI配置接口返回数据类型为Json格式

    Asp.Net WebAPI配置接口返回数据类型为Json格式   一.默认情况下WebApi 对于没有指定请求数据类型类型的请求,返回数据类型为Xml格式 例如:从浏览器直接输入地址,或者默认的XM ...

随机推荐

  1. 部署Django到云服务器(centos+nginx+mysql+uwsgi+python3)【操作篇(2)】

    接上篇操作篇(1):https://blog.csdn.net/jacky_zhuyuanlu/article/details/82880612 (七)创建Django项目 (1)建立文件夹,存放网站 ...

  2. mac eclipse 创建Java 工程

    首先创建Java工程testjavapro,创建包testjavapro,接着创建类testjava 参考: https://www.jianshu.com/p/20280b850c95

  3. Java 基础:单例模式 Singleton Pattern

    1.简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创 ...

  4. 小程序原生js获取用户权限

    1.首先要有一个按钮 <view name="authorizemodal"> <view class="drawer_screen" wx: ...

  5. git图形化统计工具 - windows下gitstats的安装和使用

    gitstats 是一款git历史统计工具,可以生成定量的统计数据,并以html图表的形式展示.统计文件包括文件数量.代码量.提交量.作者信息.每天活跃度.每周活跃度.每月活跃度以及提交数排名等等,信 ...

  6. Spring boot 事务Transactional

    开启事务只需要加上注解@Transactional即可 // 默认情况下数据库的事务作用范围是在JapRepository 的crud上 // save 一旦执行成功,就会进行提交 // 开启事务后遇 ...

  7. CPU突然飙升到300%,Dubbo活动线程数直接飙到1000

    转:https://mp.weixin.qq.com/s/-lSiVDfqYrKk_w-xitYBhA 背景:新功能开发测试完成后,准备发布上线,当发布完第三台机器时,监控显示其中一台机器CPU突然飙 ...

  8. Perl快速查找素数

    查找N内的所有素数,首先想到的就是: 对整数N从2开始到sqrt(N),进行整除计算,能整除则计算N+1,然后循环.方法简单,但效率低下.1000,000内的素数个数: #!/usr/bin/perl ...

  9. taocrypt

    taocrypt MySQL Bugs: #25189: mysqld: coding.cpp:243: void TaoCrypt::Base64Decoder::Decode(): Asserti ...

  10. (转)设置了RemoveIPC=yes 的RHEL7.2 会crash掉Oracle asm 实例和Oracle database实例

    设置了RemoveIPC=yes 的RHEL7.2  会crash掉Oracle asm 实例和Oracle database实例,该问题也会在使用Shared Memory Segment (SHM ...