SQLAlchemy声明性模型的数据验证

2024-05-18 16:16:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个web应用程序中使用CherryPy、Mako模板和SQLAlchemy。我来自Ruby on Rails的背景,我正在尝试为我的模型设置一些数据验证。我无法找到最好的方法来确保,比如说,当其他字段有值时,“name”字段有值。我试过使用SAValidation,但它允许我在所需列为空的地方创建新行,即使在列上使用validates_presence_of。我一直在看WTForms,但这似乎涉及到很多重复的代码——我已经用表中的列设置了模型类,为什么我需要再次重复所有这些列,只是说“嘿,这一个需要一个值”?我来自“skinny controller, fat model”的思维模式,一直在我的模型中寻找类似Rails的方法,比如validates_presence_ofvalidates_length_of。我应该如何验证模型接收到的数据,并确保验证失败时Session.add/Session.merge失败?


Tags: of数据方法模型模板web应用程序sqlalchemy
3条回答

我最终还是使用了WTForms。

看一下添加validation methods的文档。您可以添加一个“update”方法,该方法接受POST dict,确保所需的密钥存在,并使用修饰的验证器设置值(如果有任何错误,则引发错误)。

我写SAValidation是为了在验证模型数据时避免代码重复。它对我们很有用,至少对我们的用例来说是这样。

在我们的测试中,我们有examples of the model's setup和测试来显示验证工作。

相关问题 更多 >

    热门问题