使用SQLAlchemy,如果我的数据库中有一个唯一的列,例如,用户名:
username = db.Column(db.String(50), unique=True)
当我添加一个违反此约束的行时,我尝试添加的用户名已经存在,抛出了IntegrityError:
IntegrityError: (IntegrityError) (1062, u"Duplicate entry 'test' for key 'username'")
是否可以将约束的中断映射到自定义异常? eg.UsernameExistsError
我希望能够捕获单个约束中断,并将响应发送回用户。例如:"此用户名已被使用"
这可能吗?或者下一个最好的东西是什么?
非常感谢任何指导:)
答案 0 :(得分:2)
接下来最好的事情可能是使用try ... except
围绕调用,解析错误消息,并通过构造的错误消息通知用户。
除此之外,您可以try ... except
错误并使用Flask的custom error pages返回自定义错误代码。