应用程序引擎 - 指定运行时实体名称

2024-05-23 16:58:54 发布

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

在低级javaapi中,我曾经能够在运行时创建实体名。在

在python中,似乎必须预先定义一个类名,它也是我的实体名:

class SomeKindaData(db.Expando):
    pass

sKD = SomeKindaData(key_name='1')
...

有没有一种方法可以在运行时在appengine for Python中创建实体名?在


Tags: 方法keyname实体fordb定义pass
2条回答

我对App Engine了解不多,但您可以在运行时像这样定义类:

def get_my_class(name):
    return type(name, (db.Expando,), {})

因此type有三个参数:

  • 班级名称
  • 要从中继承的类的元组
  • 类属性字典

实体本身没有名字。在数据存储中,实体由键标识,键可以有名称或id。您正在示例代码中将实体的键名称设置为“1”。实体也按种类分类,在本例中是某种数据。在

在数据库模型以及扩展数据库提供数据存储的本地ORM抽象。使用这些时,实体的种类名称默认设置为模型类名。如果不想在创建实体之前定义模型类,可以使用the low-level datastore API

from google.appengine.api import datastore

sKD = datastore.Entity(kind='SomeKindaData', name='1')
sKD['SomeProperty'] = 'SomeValue'
datastore.Put(sKD)

相关问题 更多 >