Как вы перебираете StringProperty как строковый объект? - PullRequest
0 голосов
/ 12 февраля 2020

Мой код выглядит следующим образом:

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)

Я хочу найти конкретное c слово (элемент) в тексте внутри образца. Как я go об этом? Я попробовал эту ссылку, но она не отвечает на мой вопрос - Как получить значение StringProperty в Python для Google App Engine?

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

К сожалению, вы не можете делать подобные запросы с хранилищем данных (или, вероятно, с любой другой базой данных). Запросы хранилища данных основаны на индексах, и индексы не могут хранить сложную информацию, например, содержит ли строка определенную подстроку.

В App Engine также есть API поиска , который можно использовать для выполнять более сложный поиск текста.

0 голосов
/ 12 февраля 2020

Прежде всего, Python 2 устарела с 1 января 2020 года, и Google Cloud Platform настоятельно рекомендует миграцию в более новые среды выполнения. Кроме того, библиотека ndb больше не рекомендуется, и код, основанный на ней, необходимо обновить, прежде чем вы сможете начать использовать среду выполнения Python 3. Все эти причины заставляют вас переключиться непосредственно перед тем, как вы потратите на них много времени.

Сказав это, вы можете найти ответ в документации библиотеки ndb о запросах и свойства . В примерах кода Github .

также есть пара примеров. Сначала необходимо получить сущность с помощью метода query(), а затем получить доступ к ее данным через нотацию свойства объекта python. , Более или менее это будет выглядеть следующим образом:

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