【发布时间】:2021-03-31 14:19:49
【问题描述】:
我正在开发一个 Flask 应用程序,它将用作我的网站和我的 API。
例如,具有/api/* 模式的所有路由都在 API 类别中,其他路由针对我的网站。
由于所有 API 路由都返回 jsonify 并且该网站是图形用户界面,因此我想以正确的方式处理错误。
我的意思是,如果他们正在调用 API 并且它以异常结束,我想异常返回 jsonify 以进行错误处理,如果他们在我的网站上,则错误应该作为呈现的 HTML 返回。
我愿意接受任何关于如何实现这一点的建议,除了以下答案:
Using another IP, domain, port or etc...
编辑:我喜欢使用下面的代码
@app.errorhandler(exceptions.HTTPException)
def error(exception: exceptions.HTTPException):
* magic *
【问题讨论】:
-
你可以在你的路由中返回
jsonify({'success': False}), 400,它应该返回带有你想要给出的关于错误的输出的JSON以及这个例子中的代码400。我认为那样只会使事情复杂化。这是我的 API 失败时我遵循的过程,我只返回它和错误代码。 -
@DeadSec 我目前在错误处理程序中返回结果,API 没有问题,但是当有人例如转到
/aboout/这是一个拼写错误并且返回 404 将得到一个 jsonify 结果,它不是用户友好。 -
所以你想定制一个404?类似的东西?
-
@DeadSec 我也有。问题是,如果我想表明它会弄乱 API,并且如果我想返回 jsonify,它对于 web 中的错误不是用户友好的
标签: python-3.x flask error-handling