flask错误处理和重定向

我们在写视图函数时,会对前端传递过来的参数进行校验,如果校验不过,会给前端返回一些特定的异常信息。

错误处理

在Flask中,abort()函数可以立即终止视图函数的执行,并且把返回响应的错误代码。

1
2
3
@app.route("/error/")
def error():
abort(404) # 返回404

可以使用app.errorhandler装饰器来重写错误页面

1
2
3
@app.errorhandler(404)
def page_not_found(error):
return "404 not found",404

装饰器app.errorhandler除了可以注册错误代码外,还可以注册指定的异常类型

1
2
3
4
5
6
7
8
9
10
11
12
13
class InvalidUsage(Exception):        # 定义一个异常类
status_code = 400

def __init__(self, message, status_code=400):
Exception.__init__(self)
self.message = message
self.status_code = status_code

@app.errorhandler(InvalidUsage) # 当抛出了InvalidUsage异常的时候会自动调用这个函数
def invalid_usage(error):
response = make_response(error.message)
response.status_code = error.status_code
return response

URL重定向

Flask中重定向使用redirect函数实现。
redirect(location_url, code)

location_url表示想要重定向的目的url,常常结合url_for()使用
code表示HTTP状态码,可取的值有301, 302, 303, 305和307,默认即302

文章作者: Dar1in9
文章链接: http://dar1in9s.github.io/2020/03/11/flask/flask错误处理和重定向/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Dar1in9's Blog