【问题标题】:Handling API and UI errors in flask application处理烧瓶应用程序中的 API 和 UI 错误
【发布时间】: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


【解决方案1】:

这个问题的答案很简单......在我发布这个问题时,我不熟悉蓝图,现在我知道了。

使用蓝图我可以处理蓝图中的错误,我只需将 API 部分和 UI 部分分成 2 个蓝图并处理 jsonify 或 UI 错误上的异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-26
    • 2016-01-28
    • 1970-01-01
    • 2018-09-10
    • 2023-04-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多