如何将 StringProperty 作为字符串对象进行迭代?

How do you iterate over StringProperty as a string object?

我的代码如下:

class sample(ndb.Model):
    text=ndb.StringProperty()

class sample2(webapp2.RequestHandler):
   def get(self, item):
       q = sample.query()
       q1 = query.filter(item in sample.text)

我想在示例中的文本中搜索特定的词(项)。我该怎么做?我尝试了这个 link,但它并没有真正回答我的问题 -

首先,Python 2 is deprecated since 1st of January 2020 and the Google Cloud Platform strongly encourages the migration 更新的运行时。此外,不再推荐使用 ndb 库,并且需要更新依赖它的代码才能开始使用 Python 3 运行时。所有这些原因让我建议你在花很多时间之前直接切换。

话虽如此,您可以在有关 queries and properties. There are also a couple of examples in the Github code samples 的 ndb 库文档中找到答案。

首先您需要使用 query() 方法检索实体,然后通过 python 对象 属性 表示法访问它的数据。大致如下所示:

q = sample.query()            # Retrieve sample entity.
substring = 'word' in q.text  # Returns True if word is a substring of text

不幸的是,您不能对数据存储(或任何其他数据库)执行类似的查询。 Datastore查询是基于索引的,索引不能存储复杂的信息,比如string是否有某个子串。

App Engine 还有一个 Search API 可以用来进行更复杂的文本搜索。