Flask设置响应信息

版权声明:FatPuffer https://blog.csdn.net/qq_42517220/article/details/88737654

设置响应信息

方式一:使用元祖返回自定义响应信息

       有时需要在视图中设置其他标头。因为视图不必返回响应对象,但可以返回由Flask本身转换为响应对象的值,因此向其添加标题变得棘手。可以调用此函数而不是使用return,您将获得一个可用于附加标头的响应对象。

# coding:utf-8

from flask import Flask

app = Flask(__name__)

@app.route('/index')
def index():
	# 1.使用元祖,自定义的响应信息
	#		  响应体		状态码    响应头
	return 'index page', 200, [("Python", "Flask"), ("Python", "Tornado")]

if __name__ == "__main__":
	app.run(debug=True)

在这里插入图片描述
在这里插入图片描述
方式二:使用字典返回自定义响应信息

# coding:utf-8

from flask import Flask

app = Flask(__name__)

@app.route('/index')
def index():
	# 1.使用字典,自定义的响应信息
	#		  响应体		状态码    响应头
	return 'index page', 400, {"Python": "Flask", "python": "Tornado"}

if __name__ == "__main__":
	app.run(debug=True)

在这里插入图片描述
在这里插入图片描述
自定义状态码:

# coding:utf-8

from flask import Flask

app = Flask(__name__)

@app.route('/index')
def index():
	# 1.使用字典,自定义的响应信息
	#		  响应体		状态码    响应头
	return 'index page', "888 this is my status", {"Python": "Flask", "python": "Tornado"}

if __name__ == "__main__":
	app.run(debug=True)

在这里插入图片描述
我们可以看到此时状态码变为我们自定义额状态码了,说明信息也是由我们自定义的。

方式三:使用make_response返回自定义响应信息

# coding:utf-8

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/index')
def index():
	# 1.使用make_response来构造响应信息
	resp = make_response('index page')
	resp.status = "666 this is my ststus"
	resp.headers['city'] = 'beijing'
	return resp
	

if __name__ == "__main__":
	app.run(debug=True)

在这里插入图片描述
在这里插入图片描述
说明:

我们在返回响应的时候,可以不传递响应头,只传响应状态码,但不能省略响应状态码,只传响应头。

返回json数据

(1)返回json数据不指定响应头时前端会默认为文本类型

# coding:utf-8

from flask import Flask, make_response
import json

app = Flask(__name__)

@app.route('/index')
def index():
    data = {
        "name": "python",
        "age": 20
    }

    json_data = json.dumps(data)
    return json_data
    

if __name__ == "__main__":
    app.run(debug=True)

在这里插入图片描述
在这里插入图片描述
(2)添加响应头Content-Type,指明要传送数据类型为json

# coding:utf-8

from flask import Flask, make_response
import json

app = Flask(__name__)

@app.route('/index')
def index():
    data = {
        "name": "python",
        "age": 20
    }

    json_data = json.dumps(data)
    return json_data, 200, {"Content-Type": "application/json"}
    

if __name__ == "__main__":
    app.run(debug=True)

在这里插入图片描述
在这里插入图片描述
(3)通过jsonify返回json数据,更加方便

# coding:utf-8

from flask import Flask, jsonify
import json

app = Flask(__name__)

@app.route('/index')
def index():
    data = {
        "name": "python",
        "age": 20
    }
	
	# jsonify帮助转为json数据,并设置响应头Content-Type为application/json
    json_data = jsonify(data)
    return json_data
    

if __name__ == "__main__":
    app.run(debug=True)

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42517220/article/details/88737654