python eve 模式中的枚举类型

Enum type in python eve schema

我是 python Eve 框架的业余爱好者,但我将其用于开发目的。但是,我不知道如何在架构中使用枚举类型。我指的是 python Eve 中这种数据类型的语法。

那么,如何在 python eve 模式中表达这一点?

"tts" : {"enum": ["show","hide"]},

感谢任何帮助。

我认为您可以在 Eve 中使用自定义数据类型功能。您可以通过简单地向子类添加 _validate_type_<typename> 方法来添加新的数据类型。考虑 Eve 源代码中的以下片段。

def _validate_type_objectid(self, value):
""" Enables validation for `objectid` schema attribute.

:param value: field value.
"""
if isinstance(value, ObjectId):
    return True

此方法支持架构中的 MongoDB ObjectId 类型,允许这样的事情:

'schema': {
   'owner': {
      'type': 'objectid',
      'required': True,
   },
}

您正在查找 allowed 规则。

"tts" : {"type": "string", "allowed": ["show", "hide"]}