【问题标题】:SQLAlchemy - Handling Constraint FailuresSQLAlchemy - 处理约束失败
【发布时间】:2015-06-18 21:31:37
【问题描述】:

使用 SQLAlchemy,如果我的数据库中有一个唯一列,例如用户名:

username = db.Column(db.String(50), unique=True)

当我在我尝试添加的用户名已经存在的地方添加打破此约束的行时,会引发 IntegrityError:

IntegrityError: (IntegrityError) (1062, u"Duplicate entry 'test' for key 'username'")

是否可以将约束的破坏映射到自定义异常? eg.UsernameExistsError

我希望能够捕获单个约束中断,并将响应发送回用户。例如:“此用户名已被使用”

这可能吗?或者下一个最好的事情是什么?

任何指导将不胜感激:)

【问题讨论】:

    标签: python flask sqlalchemy flask-sqlalchemy


    【解决方案1】:

    下一个最好的事情可能是用try ... except 包围调用,解析错误消息,并用构造的错误消息通知用户。

    按照这些思路,您可以 try ... except 错误并使用 Flask 的 custom error pages 返回自定义错误代码。

    【讨论】:

    • 我担心解析错误将是唯一​​的选择。如果 Flask 能够处理这样的事情,那就太棒了……
    猜你喜欢
    • 2021-12-09
    • 2021-12-04
    • 2013-01-15
    • 1970-01-01
    • 2016-06-04
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    相关资源
    最近更新 更多