Flask 設定個性化的響應體 響應頭 狀態碼

2021-10-01 02:47:26 字數 2279 閱讀 1358

在api設計中,基於restful的設計原則,乙個http的響應應該包含執行的響應資訊以及狀態碼。

例如:乙個錯誤資訊的響應資訊應該包含內容以及返回對應的設計錯誤碼。

在flask中如何制定這個的響應資訊呢?下面來看看。

return 響應體, 狀態碼, 響應頭

等價於return (響應體, 狀態碼, 響應頭)

return 可以返回乙個元組,這樣的元組必須是 (response, status, headers) 的形式,且至少包含乙個元素。 status 值會覆蓋狀態**, headers 可以是乙個列表或字典,作為額外的訊息標頭值。

下面寫個示例檢視函式如下:

from flask import flask, request, abort

def login():

# return 響應體, 狀態碼, 響應頭

return "login fail", 404, [("token", "123456"), ("city", "shenzhen")] # 使用元組的方式設定header

if __name__ == '__main__':

使用瀏覽器請求如下:

return "login fail", 404, [("token", "123456"), ("city", "shenzhen")]
可以看到上面設定響應訊息成功返回。

from flask import flask, request, abort

def login():

# return 響應體, 狀態碼, 響應頭

# return "login fail", 404, [("token", "123456"), ("city", "shenzhen")] # 使用元組的方式設定header

return "login fail", "666 hello wolrd", # 使用元組的方式設定header

if __name__ == '__main__':

使用瀏覽器請求如下:

# return 響應體, 狀態碼, 響應頭

# return "login fail", 404, [("token", "123456"), ("city", "shenzhen")] # 使用元組的方式設定header

# return "login fail", "666 hello wolrd", # 使用元組的方式設定header

return "login fail", "999 hello wolrd"

if __name__ == '__main__':

使用瀏覽器請求如下:

可以看到只要至少有一項作為響應訊息即可。

除了return的方式返回特性的響應訊息,還可以使用另一種方式。

匯入make_response

from flask import make_response
示例**如下:

from flask import flask, request, abort, make_response

def login():

res = make_response("login fail") # 設定響應體

res.status = '999 login fail' # 設定狀態碼

res.headers['token'] = "123456" # 設定響應頭

res.headers['city'] = "shenzhen" # 設定響應頭

return res

if __name__ == '__main__':

在瀏覽器執行如下:

Windows XP 個性化設定

1.開機只執行指定程式 在登錄檔位置hkey local machine software microsoft windowsnt currentversion winlogon userinit,用你的程式名 含完整路徑 替代該鍵值下的程式userinit.exe即可,不過一定要記住該位置和use...

個性化設定vim

vim的安裝設定,下面的我對vim相關的設定,使用的系統是ubuntu 16.04.旨在做個筆記,方便自己的配置 不間斷更新中 vim的安裝使用命令列 sudo apt get update sudo apt get install vimvim的設定檔案為 vimrc,如果在 檔案下不存在該檔案,...

設定個性化背景

對於.text的skin設計,我個人認為主要是css的運用。但從 技術的方面來講,其實比寫程式簡單多了。css也融入了物件導向思想,很容易將顯示和內容分離。dudu成立了關於skin的討論組,正好向大家學習一下成功的經驗。我先拿自己開刀了,小改一下背景,然後大家就可以來拍磚了。其實,我自己都覺得難看...