gpt4 book ai didi

flask - 单独蓝图中的错误处理程序不起作用

转载 作者:行者123 更新时间:2023-12-04 17:38:05 25 4
gpt4 key购买 nike

我目前正在使用 flask 开发应用程序。每当我遇到错误时,我都会使用 abort 来引发它,例如 abort(404)。

我为错误处理创建了一个新蓝图,并在错误蓝图中包含了以下文件:

应用程序/错误/__init__.py

from flask import Blueprint

bp = Blueprint('errors', __name__)

from app.errors import handlers

应用程序/错误/handlers.py
from app.errors import bp
from flask import jsonify, make_response


@bp.errorhandler(404)
def not_found_error():
return make_response(jsonify({"error: ", "Not found"}), 404)

我也注册了蓝图如下:

应用程序/__init__.py
from app.errors import bp as errors_bp
app.register_blueprint(errors_bp)

但是,当我遇到错误时,我得到的是 HTML 响应而不是 JSON 响应。如果我在与 API 相同的蓝图中包含错误处理程序,它就可以正常工作。我如何有一个单独的错误处理程序蓝图?

最佳答案

这个答案解释了您的解决方案并对我有用:

Can we have Flask error handlers in separate module

看起来您的代码中唯一的问题是您正在使用
@bp.errorhandler(404)
你应该使用
@bp.app_errorhandler(404)

关于flask - 单独蓝图中的错误处理程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785287/

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