python後臺代碼書寫規範與語法(1)—— response

一、 指定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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章