您好,登錄后才能下訂單哦!
在 Flask 中實現內容協商以支持多種響應格式的方法是使用 Flask 提供的 request.accept_mimetypes
和 request.accept_mimetypes.best
方法來檢測客戶端所支持的響應格式,然后根據客戶端的首選格式返回相應的響應。
以下是一個簡單的示例代碼來實現內容協商:
from flask import Flask, request, jsonify
app = Flask(__name__)
data = {
"name": "Alice",
"age": 25,
"gender": "female"
}
@app.route('/user', methods=['GET'])
def get_user():
best_mime_type = request.accept_mimetypes.best_match(['application/json', 'text/html'])
if best_mime_type == 'application/json':
return jsonify(data)
elif best_mime_type == 'text/html':
return f"<h1>{data['name']}</h1><p>Age: {data['age']}</p><p>Gender: {data['gender']}</p>", 200, {'Content-Type': 'text/html'}
else:
return "Unsupported Media Type", 415
if __name__ == '__main__':
app.run(debug=True)
在上面的示例中,我們定義了一個 /user
路由,根據客戶端的首選格式返回相應的響應,支持 application/json
和 text/html
兩種格式。客戶端可以通過設置 Accept 頭來指定其首選格式,例如:
Accept: application/json
或者
Accept: text/html
這樣,Flask 將根據客戶端的首選格式返回相應的響應。如果客戶端不支持任何格式,將返回狀態碼 415 表示不支持的媒體類型。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。