我是编写烧瓶的新手,目前flask-principal
用作我的授权机制。当用户尝试在没有所需权限的情况下访问 url 时,flask-principal 会引发PermissionDenied
异常。
它会导致我的系统抛出500 internal server
错误。
如何捕获特定异常并将用户重定向到警告页面?如果您可以分享一个代码示例,那将非常有帮助。
我是编写烧瓶的新手,目前flask-principal
用作我的授权机制。当用户尝试在没有所需权限的情况下访问 url 时,flask-principal 会引发PermissionDenied
异常。
它会导致我的系统抛出500 internal server
错误。
如何捕获特定异常并将用户重定向到警告页面?如果您可以分享一个代码示例,那将非常有帮助。
你可以告诉 Flask-Principal 你想提出一个特定的 HTTP 错误代码:
@app.route('/admin')
@admin_permission.require(http_exception=403)
def admin(request):
# ...
现在flask.abort()
将被调用而不是 raise PermissionDenied
。对于 403 错误代码,您可以注册一个错误处理程序:
@app.errorhandler(403)
def page_not_found(e):
session['redirected_from'] = request.url
return redirect(url_for('users.login'))
whereurl_for('users.login')
将返回登录页面的路由 URL。