flask返回数据类型

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

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

全部返回前台的内容其实都应该是Response的对象或者其子类,咱们看到若是返回的是字符串直接能够写成return u'字符串内容'的形式,可是其实这个字符串也是通过了Response包装的:return Response(u'字符串')
咱们看一段代码:

# coding: utf-8

from flask import Flask, Response

app = 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-8

from flask import Flask, Response, jsonify

app = 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-8

from flask import Flask, Response, jsonify

app = 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 = 39
    wetness = 50
    print("测量结束...")
 
    # 元组-能够包含多个数据,所以可使用元组让函数一次返回多个值
    # 若是函数返回的类型是元组,小括号能够省略
    # 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, a
 
print(a)  # 100
print(b)  # 6
 
 ———————————————— 
版权声明:本文为CSDN博主「houyanhua1」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处连接及本声明。
原文连接:https://blog.csdn.net/houyanhua1/article/details/83999767
相关文章
相关标签/搜索