【发布时间】:2019-10-12 07:54:08
【问题描述】:
我正在使用Flask 1.0、Flask-SqlAlchemy 2 和Angular 7。
当 SqlAlchemy 抛出错误时,我想在前端显示定制的错误消息。
official Flask documentation 中有一个关于如何处理错误的部分,还有一个关于 SO 的similar question,尽管它与Flask-Restless 有关。但我无法将这些点联系起来。
当 SqlAlchemy 抛出错误时,它看起来像这样:
DETAIL: Key (id)=(123) is not present in table "foo".
我将错误返回给路由:
try:
db.session.commit()
except Exception as error:
db.session.flush()
db.session.rollback()
return error
在路线中我正在检查是否有错误:
if status == True:
return jsonify( { "success": True } ), 201
else:
return error_response(500, str(status))
我的 error_response 类看起来像这样:
def error_response(status_code, message=None):
payload = {"error": HTTP_STATUS_CODES.get(status_code, "Unknown error")}
if message:
payload["message"] = message
response = jsonify(payload)
response.status_code = status_code
return response
但响应 json 仅包含一般错误消息:
"message": "Http failure response for http://127.0.0.1:5000/database/add_foo: 0 Unknown Error"
【问题讨论】:
标签: flask sqlalchemy flask-sqlalchemy