知識點: 1、abort()函式 2、自定義狀態碼
一、概況
我們在寫檢視函式時,會對前端傳遞過來的引數進行校驗,如果校驗不過,會給前端返回一些特定的異常資訊。在Flask中,abort() 函式可以立即終止檢視函式的執行,並且把相對應的錯誤資訊返回給前端。
二、使用
from flask import Flask, abort
app = Flask(__name__)
@app.route('/login/<phone>')
def index(phone):
if phone != '123456':
abort(502) # 立即停止檢視函式執行,並把異常返回
return phone
if __name__ == '__main__':
# 0.0.0.0代表任何能代表這臺機器的地址都可以訪問
app.run(host='0.0.0.0', port=5000, debug=True) # 執行程式
複製程式碼
我們瀏覽器除錯一下:
注意abort裡面的狀態碼必須就是HTTP狀態碼,不能自己隨便寫。常見狀態碼如下:狀態程式碼有三位數字組成,第一個數字定義了響應的類別,共分五種類別:
- 1xx:指示資訊--表示請求已接收,繼續處理
- 2xx:成功--表示請求已被成功接收、理解、接受
- 3xx:重定向--要完成請求必須進行更進一步的操作
- 4xx:客戶端錯誤--請求有語法錯誤或請求無法實現
- 5xx:伺服器端錯誤--伺服器未能實現合法的請求 常見狀態碼:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被伺服器所理解
401 Unauthorized //請求未經授權,這個狀態程式碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //伺服器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //伺服器發生不可預期的錯誤
503 Server Unavailable //伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常
複製程式碼
三、自定義狀態碼資訊
有時候我們感覺預設的狀態碼資訊對於使用者提示不友好,我們可以預設的狀態碼資訊改成我們自己想要的。我們在專案中加上如下函式:
# 自定義502狀態碼資訊
@app.errorhandler(502)
def handle_502_error(error): # error:錯誤資訊
return "伺服器泡妞去了"
複製程式碼
我們瀏覽器除錯一下:
歡迎關注我的公眾號: