python - 使用 Python 3 和 Cloud NDB 的 msgprop.EnumProperty 和 messages.Enum 的最佳实践是什么?
问题描述
使用 Python 2 和 NDB,我们可以通过这种方式将 Enum 存储在实体的属性中:
from google.appengine.ext import ndb
from google.appengine.ext.ndb import msgprop
from protorpc import messages
class CoreWebhookService(messages.Enum):
UNKNOWN = 0
AUTH0 = 1
class CoreWebhook(ndb.model):
service = msgprop.EnumProperty(CoreWebhookService, required=True)
url = ndb.StringProperty(required=True)
使用 Python 3,根据本指南,它说If you try to create these objects, a NotImplementedError will be raised.
google.appengine.ext.ndb.msgprop.EnumProperty。
我明白
from google.appengine.ext import ndb
正在被取代
from google.cloud import ndb
但是从现在开始 Enum 的最佳实践是什么,因为它没有实现?
谢谢
解决方案
抱歉,我没有测试项目来验证这一点,但 python 3 有枚举。你应该能够直接做一些事情,比如:
from enum import IntEnum
class CoreWebhookService(IntEnum):
UNKNOWN = 0
AUTH0 = 1
class CoreWebhook(ndb.model):
service = IntegerProperty(required = true, choices=list(CoreWebhookService))
url = ndb.StringProperty(required=True)
推荐阅读
- r - R初学者:MSE返回NaN
- c - 无法运行我的代码,我不知道为什么它不起作用
- python - Python adding day number with average
- python - 在迭代期间在同一行上打印dict的值和下一个值
- c++ - 与 C 代码相比,为什么 C++ 代码不需要“#define _POSIX_C_SOURCE 200809L”?
- javascript - 鼠标事件的触发点击与切换
- codenameone - Android访问位置使登录屏幕放大效果
- c++ - 将 stl 字符串缩小到小于 15 个字符的容量
- php - 如何从原生 PHP 读取 Codeigniter 3 会话值?
- javascript - ShowText 中的文本着色以及调用变量?