我目前正在使用 Flask 开发一个应用程序。每当遇到错误时,我都会使用 abort 引发错误,例如 abort(404)。
我创建了一个新的错误处理蓝图,并在错误蓝图中包含以下文件:
应用程序/错误/__init__.py
from flask import Blueprint
bp = Blueprint('errors', __name__)
from app.errors import handlers
Run Code Online (Sandbox Code Playgroud)
应用程序/错误/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)
Run Code Online (Sandbox Code Playgroud)
我还注册了蓝图,如下:
应用程序/__init__.py
from app.errors import bp as errors_bp
app.register_blueprint(errors_bp)
Run Code Online (Sandbox Code Playgroud)
但是,当我遇到错误时,我收到的是 HTML 响应而不是 JSON 响应。如果我将错误处理程序包含在与 API 相同的蓝图中,它就可以正常工作。如何拥有单独的错误处理程序蓝图?
这个答案解释了您的解决方案并且对我有用:
看起来您的代码中唯一的问题是您正在使用
@bp.errorhandler(404)
你应该使用
@bp.app_errorhandler(404)
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |