Google应用程序引擎字符串到实体

2024-09-23 22:19:47 发布

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

我想把任何字符串转换成我现有的实体。是否可以编写如下convertToEntity()函数?你知道吗

class Personel(db.Model):
  name=db.StringProperty()


class IsEntityExists(webapp.RequestHandler):
  def get(self):
    entity="Personal"
    Entity=entity.convertToEntity()
    Entity.all()

Tags: 函数字符串name实体dbmodelwebappclass
2条回答

我想知道这个问题是否只是要求在已经导入模型类时,以某种方式查找该模型类的名称。你可以很容易地做到这一点(但只有当它已经被导入!),如下所示:

cls = db.class_for_kind("Personel")
... cls.all() ...

NDB中的等效值:

cls = ndb.Model._kind_map["Personel"]
... cls.query() ...

祝你好运!你知道吗

不,它不能纠正拼写。:-)

只有当你为模型建立加载器。。。例如:

from app import model_loader

class IsEntityExists(webapp.RequestHandler):
  def get(self):
    Entity=model_loader("Personal")
    Entity.all()

而model\u loader函数将在文件夹结构(python模块)中搜索已定义的模型。。例如,您有文件夹结构:

models/
personal.py
other_model.py
user.py

所以模型装载机(“个人”)将导入个人.py并从该模块中提取“Personal”类,允许您对该类执行任何您想要的操作—如果它找到并加载它的话。你知道吗

当然,您必须对加载程序进行编码。你知道吗

但是,如果类(定义的模型)与代码位于同一个文件中,则可以通过locals()搜索“Personal”

def load_model(name):
    local = locals()
    try:
      return local[name]
    except KeyError:
      return None

相关问题 更多 >