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

  • 2019 年 11 月 20 日
  • 笔记

abort方法使用场景

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

abort方法的引入

from flask import abort

abort 方法示例

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

abort 返回错误码示例

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 返回错误信息示例

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,如下:

from flask import Response

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