Python 我应该在哪里/如何在Google App Engine中对实体进行验证和转换?
在RubyonRails中,每个模型实体都有一个“validate_on_something”钩子方法,该方法将在实体实际持久化到数据库之前调用。我想在谷歌应用程序引擎类似的功能。我知道您可以通过在单个属性的声明中向它们传递参数来对它们进行验证。但是,如果我希望进行更多的验证,那么在模型类声明中是否有一些地方可以这样做 同样,有时实体在实际持久化到数据库之前需要修改。在实体实际写入数据库之前,我可能需要修改(转换)实体。实体类声明中是否有允许我这样做的地方 我知道我可以将这些转换/验证放在类之外。但这似乎不是一个好的OO设计。看起来真的应该有钩子方法,可以在模型中自动调用,以满足这些需求Python 我应该在哪里/如何在Google App Engine中对实体进行验证和转换?,python,validation,google-app-engine,transformation,Python,Validation,Google App Engine,Transformation,在RubyonRails中,每个模型实体都有一个“validate_on_something”钩子方法,该方法将在实体实际持久化到数据库之前调用。我想在谷歌应用程序引擎类似的功能。我知道您可以通过在单个属性的声明中向它们传递参数来对它们进行验证。但是,如果我希望进行更多的验证,那么在模型类声明中是否有一些地方可以这样做 同样,有时实体在实际持久化到数据库之前需要修改。在实体实际写入数据库之前,我可能需要修改(转换)实体。实体类声明中是否有允许我这样做的地方 我知道我可以将这些转换/验证放在类之外
因此,我的问题是,在实体被持久化之前,处理实体验证和转换的最合适方法是什么?您是否在原始应用程序引擎api之上使用任何类型的web框架?Rails是一个非常高级的框架。您是否研究过Django或任何其他web框架?您可能会发现它们比原始appengine实体更接近rails 或者,如果您想要一些较低级别的内容,请参阅本文
您是否在原始应用程序引擎api之上使用任何类型的web框架?Rails是一个非常高级的框架。您是否研究过Django或任何其他web框架?您可能会发现它们比原始appengine实体更接近rails 或者,如果您想要一些较低级别的内容,请参阅本文
最佳答案取决于您需要进行何种转换。模型没有通用的前/后看跌期权方法,但还有其他几种选择:
- 如前所述,可以将验证函数传递给属性类构造函数
- 可以使用以编程方式生成值的自定义属性类,例如
- 您可以使用在最低级别存储实体时修改实体
- 如前所述,可以将验证函数传递给属性类构造函数
- 可以使用以编程方式生成值的自定义属性类,例如
- 您可以使用在最低级别存储实体时修改实体
- 最佳答案取决于您需要进行何种转换。模型没有通用的前/后看跌期权方法,但还有其他几种选择: