SQLAlchemy - 处理约束失败

时间:2015-06-18 21:31:37

标签: python flask sqlalchemy flask-sqlalchemy

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

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

当我添加一个违反此约束的行时,我尝试添加的用户名已经存在,抛出了IntegrityError:

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

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

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

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

非常感谢任何指导:)

1 个答案:

答案 0 :(得分:2)

接下来最好的事情可能是使用try ... except围绕调用,解析错误消息,并通过构造的错误消息通知用户。

除此之外,您可以try ... except错误并使用Flask的custom error pages返回自定义错误代码。

相关问题