gpt4 book ai didi

Python flask 和自定义客户端错误消息

转载 作者:太空狗 更新时间:2023-10-29 18:24:30 25 4
gpt4 key购买 nike

我目前正在为我正在开发的应用程序编写 REST API。该应用程序是使用 flask 用 python 编写的。我有以下内容:

try:
_profile = profile(
name=request.json['name'],
password=profile.get_salted_password('blablabla'),
email=request.json['email'],
created_by=1,
last_updated_by=1
)
except AssertionError:
abort(400)

session = DatabaseEngine.getSession()
session.add(_profile)
try:
session.commit()
except IntegrityError:
abort(400)

错误处理程序如下所示:

@app.errorhandler(400)
def not_found(error):
return make_response(standard_response(None, 400, 'Bad request'), 400)

我使用错误 400 来表示 sqlalchemy 模型验证器的问题写入数据库时​​的唯一约束,在这两种情况下都会向客户端发送以下错误:

{
"data": null,
"error": {
"msg": "Bad request",
"no": 400
},
"success": false
}

有没有办法仍然使用 abort(400) 但也以某种方式设置错误,以便错误处理程序可以负责为结果中的错误对象添加附加信息?

我希望它更符合:

{
"data": null,
"error": {
"msg": "(IntegrityError) duplicate key value violates unique constraint profile_email_key",
"no": 400
},
"success": false
}

最佳答案

您可以直接将自定义响应放入 abort() 函数中:

abort(make_response("Integrity Error", 400))

或者,你可以把它放在错误处理函数中

@app.errorhandler(400)
def not_found(error):
resp = make_response("Integrity Error", 400)
return resp

关于Python flask 和自定义客户端错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081800/

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