Web框架——Flask系列之abort函数与自定义异常处理(十三)
发布日期:2021-05-08 02:34:22 浏览次数:14 分类:精选文章

本文共 3074 字,大约阅读时间需要 10 分钟。

一、abort函数

使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息

  1. 传递状态码信息,必须是标准的http状态码
    abort(403)
  2. 传递响应体信息
    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 可以是一个列表或字典,作为额外的消息标头值。

  1. 使用元组或字典,返回自定义的响应信息
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 里面的状态码可以是自定义的状态码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_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)

在这里插入图片描述

上一篇:LeetCode 每日一题 867 转置矩阵
下一篇:斐波那契数列 矩阵乘法解法

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年03月20日 10时53分45秒