一、 指定response返回的格式类型是json
我们客户端(浏览器)的request对象发送到服务器端,服务器做出响应,把response对象发送给客户端。我们也不能把response就认为是我们看到的五颜六色的页面,那只是response中的body的一部分。它还有headers等信息,服务器端发送出来的response我们是可以参与其中的,就是我们可以控制服务器端返回给客户端的是什么。
response_data = {}
response_data['subscriptions'] = SubscriptionList
response = make_response(jsonify(response_data),200)
# 指定resposne返回的格式类型是json
response.headers['Content-Type'] = 'application/json'
return response
**返回json响应数据方法二:**使用dumps,转换为json字符串
from flask import Flask, request, abort, make_response
import json
# 实例化app
app = Flask(import_name=__name__)
@app.route('/login', methods=["GET","POST"])
def login():
data = {
"user_name": "libai",
"user_age": 18,
}
res_json = json.dumps(data)
# return 响应体, 状态码, 响应头
return res_json, 200, {"Content-Type":"application/json"}
if __name__ == '__main__':
app.run(debug=True)
方法三: 在Flask框架中有一个jsonify的方法可以将这个过程简化,
使用jsonify来返回json响应数据用jsonify的话,content-type直接是json,不需要修改响应头,
from flask import Flask, jsonify
# 实例化app
app = Flask(import_name=__name__)
@app.route('/login', methods=["GET","POST"])
def login():
data = {
"user_name": "libai",
"user_age": 18,
}
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)
另外jsonify不单单可以将dict转为json响应数据,还可以直接往里面写参数值
from flask import Flask, jsonify
# 实例化app
app = Flask(import_name=__name__)
@app.route('/login', methods=["GET","POST"])
def login():
return jsonify(token=123456, gender=0)
if __name__ == '__main__':
app.run(debug=True)