一、 指定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)