一、abort函數
使用abort函數可以立即終止視圖函數的執行,並可以返回給前端特定的信息
- 傳遞狀態碼信息,必須是標準的http狀態碼
abort(403) - 傳遞響應體信息
resp = Response(“login failed”)
abort(resp)
from flask import Flask,request,abort,Response
app = Flask(__name__)
@app.route("/login",methods=["GET"])
def login():
name = ""
pwd = ""
if name !="zhangsan" or pwd !="admin":
# 使用abort函數可以立即終止視圖函數的執行
# 並可以返回給前端特定的信息
# 1. 傳遞狀態碼信息,必須是標準的http狀態碼
# abort(403)
# 2. 傳遞響應體信息
resp = Response("login failed")
abort(resp)
return "login success"
if __name__ == '__main__':
app.run(debug=True)
二、自定義異常處理(錯誤信息)
@app.route("/login",methods=["GET"])
def login():
name = ""
pwd = ""
if name !="zhangsan" or pwd !="admin":
# 使用abort函數可以立即終止視圖函數的執行
# 並可以返回給前端特定的信息
# 1. 傳遞狀態碼信息,必須是標準的http狀態碼
abort(404)
# 2. 傳遞響應體信息
# resp = Response("login failed")
# abort(resp)
return "login success"
# 自定義的處理錯誤的方法
@app.errorhandler(404)
def handle_404_error(err):
# 這個函數的返回值會是前端用戶看到的最終結果
return "您訪問的頁面不存在,出現了404錯誤!錯誤信息:%s" % err
if __name__ == '__main__':
app.run(debug=True)
三、返回的響應數據
可以返回一個元組,這樣的元組必須是 (response, status, headers) 的形式,且至少包含一個元素。 status 值會覆蓋狀態代碼, headers 可以是一個列表或字典,作爲額外的消息標頭值。
- 使用元組或字典,返回自定義的響應信息
from flask import Flask,request,abort,Response
app = Flask(__name__)
@app.route("/index",methods=["GET"])
def index():
# 1. 使用元組,返回自定義的響應信息
# 響應體 狀態碼 響應頭
return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]
from flask import Flask,request,abort,Response
app = Flask(__name__)
@app.route("/index",methods=["GET"])
def index():
# # 1. 使用元組,返回自定義的響應信息
# # 響應體 狀態碼 響應頭
# return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]
return "index page" , 400 , {"Itcast":"python1","City1":"sz1"}
if __name__ == '__main__':
app.run(debug=True)
from flask import Flask,request,abort,Response
app = Flask(__name__)
@app.route("/index",methods=["GET"])
def index():
# # 1. 使用元組,返回自定義的響應信息
# # 響應體 狀態碼 響應頭
# return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]
# return "index page" , 400 , {"Itcast":"python1","City1":"sz1"}
# return 裏面的狀態碼可以是自定義的狀態碼666
return "index page", 666, {"Itcast": "python1", "City1": "sz1"}
if __name__ == '__main__':
app.run(debug=True)
2. 使用make_response 來構造想要信息
from flask import Flask,request,abort,Response,make_response
app = Flask(__name__)
@app.route("/index",methods=["GET"])
def index():
# # 1. 使用元組,返回自定義的響應信息
# # 響應體 狀態碼 響應頭
# return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]
# return "index page" , 400 , {"Itcast":"python1","City1":"sz1"}
# return 裏面的狀態碼可以是自定義的狀態碼666
# return "index page", 666, {"Itcast": "python1", "City1": "sz1"}
# return "index page", "666 itcast status", {"Itcast": "python1", "City1": "sz1"}
# 2. 使用make_response 來構造想要信息
resp = make_response("index page 2")
# 設置狀態嗎
resp.status = "999 itcast"
# 設置響應頭
resp.headers["city"] = "sz"
return resp
if __name__ == '__main__':
app.run(debug=True)