gpt4 book ai didi

flask - 无法从 Flask-Restful 应用程序返回 404 错误作为 json 而不是 html

转载 作者:行者123 更新时间:2023-12-03 13:51:03 28 4
gpt4 key购买 nike

我正在做一个简单的 Flask REST API 测试,例如当我调用 {{url}}/items 时,我得到了项目列表。但是,如果调用传递到不存在的端点,例如 {{url}}/itemsss,那么我会在 html 中收到错误 404。

我想让错误处理更加友好,并针对某些错误(例如 400、404,405...)返回 json 而不是 html。

例如,对于 404,我试过这个:

@app.errorhandler(404)
def not_found(e):
response = jsonify({'status': 404,'error': 'not found',
'message': 'invalid resource URI'})
response.status_code = 404
return response

但是它不起作用。

我的问题与此类似: Python Flask - Both json and html 404 error

我想知道,如果使用蓝图是实现这一目标的唯一方法吗?

如果有更简单的方法将 404 错误输出为 json?

例如,而不是这样:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<title>404 Not Found</title>

<h1>Not Found</h1>

<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>

像这样的东西:
{

error: true,

status: 404,

code: "error.notFound",

message: "API endpoint not found",

data: { }

}

感谢您对此的帮助。

最佳答案

通常当我需要使用 Flask-RESTful 返回自定义错误消息时我会做这样的事情:

from flask import make_response, jsonify

def custom_error(message, status_code):
return make_response(jsonify(message), status_code)

关于flask - 无法从 Flask-Restful 应用程序返回 404 错误作为 json 而不是 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081497/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com