python Fastapi 響應模型和狀態碼

2022-10-10 14:15:13 字數 2833 閱讀 3542

簡單絮叨一下

前面聊cookieheader一些事情,今天主要聊聊關於響應的一些事情

響應就是介面的返回值,及狀態碼等,這個是必須要有的。其返回的資料主要是用於前端除錯頁面和測試進行測試的參考。

響應模型

注意點:response_model是「裝飾器」方法(getpost等)的乙個引數。不像之前的所有引數和請求體,它不屬於路徑操作函式。

response_model就是定義返回值,因為response_modelitem賦值,請求介面後返回與輸入的資料相同

啟動服務:

請求介面:

post

請求引數:

請求結果:

如果我們輸入的是含密碼的,那上述那種返回與輸入相同的資料就不適合該需求了,那這樣就得定義輸出的模型:

注釋資訊:

emailstr是郵件型別。

userin是輸入模型,而userout是輸出模型。

response_model=userout是接收的輸出模型。

user: userin是接收的輸入模型。

return user雖說是返回輸入模型,但是我們已經宣告了輸出模型,因此,fastapi將會負責過濾掉未在輸出模型中宣告的所有資料。

啟動服務:

請求介面:

post

請求引數:

請求結果:

實際工作中,有些時候只需要返回設定的引數或者是要指定輸出結果,response_model_exclude_unset引數就是僅返回顯式設定的值,而定義乙個id來處理指定返回值。

response_model_exclude_unset傳true

response_model_exclude_unset=true是僅返回顯式設定的值,意思就是你請求傳幾個引數就返回幾個引數。

啟動服務:

請求介面:

post

請求引數:

請求結果:

指定返回值

就是向路徑操作傳送指定的id,這類資料可在資料庫中獲取:

items這個大字典,後續可在資料庫中獲取資料

啟動服務:

請求介面:

post

請求引數:

請求結果:

再來聊聊response_model_includeresponse_model_excluderesponse_model_include是返回值包括哪些引數,而response_model_exclude是返回值不包括哪些引數:

response_model_include傳參

請求引數:

請求結果:

response_model_exclude傳參

請求引數:

請求結果:

響應狀態碼

直接傳狀態碼

status_code引數接收乙個表示http狀態碼的數字。

引入status狀態包

http狀態碼解釋:

200 是預設狀態**,它表示一切「正常」。

另乙個例子會是 201,「已建立」。它通常在資料庫中建立了一條新記錄後使用。

乙個特殊的例子是 204,「無內容」。此響應在沒有內容返回給客戶端時使用,因此該響應不能包含響應體。

乙個例子是 404,用於「未找到」響應。

對於來自客戶端的一般錯誤,你可以只使用 400。

未完成,待續……

一直在努力,希望你也是!

python fastapi自建HTTP爬蟲IP池

網路上搜尋一下有很多提供http 的 直接使用beautifulsoup將ip爬下來。html requests.get url text bs beautifulsoup html,html.perser findall select res requests.get url,headers he...

網頁請求響應(響應狀態碼,響應頭)

響應狀態碼表示伺服器的響應狀態。在爬蟲中,我們可以根據狀態碼來判斷伺服器響應狀態,如狀態碼為200,則證明成功返回資料,再進行進一步的處理,否則直接忽略。以下給出常見的錯誤 及錯誤原因 狀態碼說明 詳情100 繼續請求者應當繼續提出請求。伺服器已經接收到請求的一部分,正在等待其餘部分 101切換協議...

eclipse 響應慢 或 未響應

eclipse啟動正常,但在開啟工程時會出未響應的情況,在任務管理器中察看也是味應用。造成這種情況原因有3 一 cpu不夠用,在任務管理器中察看cpu會達到90 以上,甚至是100 剛才看了cpu才24 顯然問題不在這裡。二 記憶體不夠,在任務管理器中察看記憶體才用1.7g,我有機器記憶體4g,安裝...