Flask 使用abort方法返回http错误码、http错误响应信息

2019-11-21 23:56:36 浏览数 (1)

abort方法使用场景

在api开发中,当视图处理http请求的时候会出现错误的情况。当发现这种情况,如果需要返回http错误码给浏览器,或者错误响应信息,这时候就可以使用abort()方法了。

abort方法的引入

代码语言:javascript复制
from flask import abort

abort 方法示例

下面我编写一个登录的login处理视图函数,设置一个必定会错误的情况,并且分别设置返回错误码、错误响应信息的情况。

abort 返回错误码示例

代码语言:javascript复制
from flask import Flask, request, abort

# 实例化app
app = Flask(import_name=__name__)

@app.route('/login', methods=["GET","POST"])
def login():

    user_name = ''
    user_pwd = ''

    if user_name != 'libai' and user_pwd != '123':
        abort(404) # 返回http错误码 404 503 500

    return "login sucess"

if __name__ == '__main__':
    app.run(debug=True)

要注意,abort返回的错误码必须是标准http错误码。 下面使用浏览器访问看看,如下:

可以看到返回的就是404的错误信息,下面将错误码改为500看看,如下:

使用abort直接返回错误码是最常用的情况,另外还有返回错误信息内容的情况。

abort 返回错误信息示例

代码语言:javascript复制
from flask import Flask, request, abort, Response

# 实例化app
app = Flask(import_name=__name__)

@app.route('/login', methods=["GET","POST"])
def login():

    user_name = ''
    user_pwd = ''

    if user_name != 'libai' and user_pwd != '123':
        res = Response('login fail')
        abort(res) # 返回错误信息

    return "login sucess"

if __name__ == '__main__':
    app.run(debug=True)

在使用错误信息还需要引入Response,如下:

代码语言:javascript复制
from flask import Response

在浏览器执行请求显示如下:

0 人点赞