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

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

所有返回前台的内容其实都应该是Response的对象或者其子类,我们看到如果返回的是字符串直接可以写成return u'字符串内容'的形式,但是其实这个字符串也是经过了Response包装的:return Response(u'字符串')
我们看一段代码:# coding: utf-8from flask import Flask, Responseapp = Flask(__name__)  # type: Flask
app.debug = True@app.route('/')
def hello_world():return 'Hello World!'@app.route('/login/')
def login():return Response(u'login')if __name__ == '__main__':app.run()代码里我新建了一个login函数,返回的就是用Response包装后的字符串,访问地址可以看到页面打印了login。我们有时候需要返回数组、字典之类的数据,但是数组或者字典这些数据是不能直接return的。这个时候怎么办呢?答案就是你必须将数组或字典转换成json后再返回(这就是为什么我们做接口测试的时候传参前用json.loads()将字符串转换成字典的原因了),因为json就是一个字符串。数组或字典转换成json的函数叫做jsonify,你需要先导入from flask import jsonify或者像船长下面代码里写的那样,一下子导入好几个库:# coding: utf-8from flask import Flask, Response, jsonifyapp = Flask(__name__)  # type: Flask
app.debug = True@app.route('/')
def hello_world():return 'Hello World!'@app.route('/login/')
def login():dict1 = {"name": "Warren"}return jsonify(dict1)if __name__ == '__main__':app.run()
上面代码里`dict1`的数据类型是一个字典,我们通过`jsonify()`将其转换成了`json`,就可以成功返回了,去页面,看到:除了字符串以外,还可以返回元组,但是返回元组是有要求的,元组内容包括三个参数:response、status_code、headers,其中:response指页面打印信息,可以是字符串或Response对象status_code指状态码,成功200,找不到页面404等等headers指信息头# coding: utf-8from flask import Flask, Response, jsonifyapp = Flask(__name__)  # type: Flask
app.debug = True@app.route('/')
def hello_world():return 'Hello World!'@app.route('/login/')def login():dict1 = {"name": "Warren"}return jsonify(dict1)@app.route('/set/')
def myset():return u'返回元组', 200, {"name": "Warren"}if __name__ == '__main__':app.run()
看上面代码的myset函数,我return了一个元组(单个值的元组可以不写括号,而且如果你加上括号,pycharm会有黄线提醒你remove redundant parentheless,意思就是去掉多余的括号)。

然后我们到页面访问/set/这个页面,打开F12就是开发者工具,然后刷新页面:

元组

demo.py(函数返回多个值(元组)):# 定义函数,有多个返回值(返回元组)
def measure():"""测量温度和湿度"""print("测量开始...")temp = 39wetness = 50print("测量结束...")# 元组-可以包含多个数据,因此可以使用元组让函数一次返回多个值# 如果函数返回的类型是元组,小括号可以省略# return (temp, wetness)return temp, wetness  # 小括号可以省略# 元组
result = measure()
print(result)  # (39, 50)# 需要单独的处理温度或者湿度 - 不方便
print(result[0])  # 39
print(result[1])  # 50# 如果函数返回的类型是元组,同时希望单独的处理元组中的元素
# 可以使用多个变量,一次接收函数的返回结果
# 注意:使用多个变量接收结果时,变量的个数应该和元组中元素的个数保持一致
gl_temp, gl_wetness = measure()  # 接受函数多个返回值print(gl_temp)  # 39
print(gl_wetness)  # 50
demo.py(利用元组交换变量值):a = 6
b = 100# 解法1:-使用其他变量
# c = a
# a = b
# b = c# 解法2:-不使用其他的变量
# a = a + b
# b = a - b
# a = a - b# 解法3:-Python 专有
# a, b = (b, a)
# 提示:等号右边是一个元组,只是把小括号省略了
a, b = b, aprint(a)  # 100
print(b)  # 6————————————————
版权声明:本文为CSDN博主「houyanhua1」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/houyanhua1/article/details/83999767

转载于:https://www.cnblogs.com/BlueFire-py/p/11384182.html

flask返回数据类型相关推荐

  1. WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml

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

  2. WebAPI返回数据类型

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

  3. springboot控制接口返回的字段_SpringBoot实战:SpringBoot之Rest Full接口自定义返回数据类型(ResponseBodyAdvice)...

    我们在日常开发的过程中,经常会要求统一返回数据格式.如要求统一访问格式为 { "success": 请求是否成功, "message": 请求消息, " ...

  4. ajax返回数据类型为JSON数据的处理

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

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

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

  6. Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程

    HQL Query实例与表 session通用工具类 Query对象 from 类→List<类>接收 映射类 仅查询商品 查询商品及所在商家 别名 返回数据类型定义 Iterator接收 ...

  7. 如何从返回数据类型为json的数据中提取特定数据?

    1.首先ipmort import jsonimport requests 2.接口返回数据 response = requests.post(request_url, data=params, he ...

  8. ts(TypeScript)定义服务器返回数据类型

    ts(TypeScript)定义服务器返回数据类型 1.定义基本返回类型 export type JSONResponse = {stat: string;msg?: string; }; stat: ...

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

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

最新文章

  1. IntelliJ IDEA 新版介绍
  2. python --time()函数
  3. java resources目录 编码_关于Java项目读取resources资源文件路径
  4. JQuery仿最新淘宝网首页带箭头幻灯片,JQuery轮播图
  5. linux 版本的scipy,Linux 系统中 SciPy (Python 3) 编程环境
  6. 《SQL初学者指南(第2版)》——2.4 指定列
  7. php强大的函数,PHP中一些功能强大却很少使用的函数
  8. hacker基础教程
  9. java批量实现1对1关系的自动匹配_杂谈Java内存Webshell的攻与防
  10. Openlayers 详细记录controls(控件)
  11. 《商务与经济统计》学习笔记(七)—各统计分布知识点归纳
  12. 松下新一代电力线通信(PLC)技术经IEEE P1901.3工作小组批准成为基准规范
  13. 架构 - 5种常见的软件架构
  14. excel统计填充色单元格数
  15. 无人驾驶能解决什么问题?
  16. 华为鸿蒙电视v65如何,华为智慧屏V65体验:不谈鸿蒙OS,作为大屏它也足够惊艳...
  17. ios 使用隐私条款
  18. 一篇文章学会二进制的运算以及原码、反码、补码
  19. 如何在Python编码面试中脱颖而出
  20. MySQL性能优化Buffer Pool详细介绍

热门文章

  1. Redis主从读写分离配置
  2. 20179301《网络攻防实践》第九周作业
  3. Python进阶_mysql(1)
  4. OpenStack运维(二):OpenStack计算节点的故障和维护
  5. 喵哈哈村的魔法考试 Round #1 (Div.2) C 喵哈哈村的魔法石(II) 背包dp
  6. Windows请求连接 Vmware+Ubuntu14被拒绝 的幽怨诉说
  7. 算法设计与分析 上机题Mergesort
  8. 新手做2D手游该用哪些工具?
  9. Swift基础加强_跟我打500行
  10. DelayedFetch分析