一、abort函数
使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息
- 传递状态码信息,必须是标准的http状态码
abort(403) - 传递响应体信息
resp = Response(“login failed”)
abort(resp)
from flask import Flask,request,abort,Responseapp = 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" % errif __name__ == '__main__':app.run(debug=True)
三、返回的响应数据
可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。
- 使用元组或字典,返回自定义的响应信息
from flask import Flask,request,abort,Responseapp = Flask(__name__)@app.route("/index",methods=["GET"])
def index():# 1. 使用元组,返回自定义的响应信息# 响应体 状态码 响应头return "index page" , 400 , [("Itcast","python"),("City","shenzhen")]
from flask import Flask,request,abort,Responseapp = 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,Responseapp = 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 里面的状态码可以是自定义的状态码666return "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_responseapp = 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 respif __name__ == '__main__':app.run(debug=True)