我们在写视图函数时,会对前端传递过来的参数进行校验,如果校验不过,会给前端返回一些特定的异常信息。
错误处理
在Flask中,abort()
函数可以立即终止视图函数的执行,并且把返回响应的错误代码。
1 2 3
| @app.route("/error/") def error(): abort(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) 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