Google App Engine fetch () ValueError: нужно более 1 значения для распаковки - PullRequest
0 голосов
/ 10 апреля 2020
gql_query = "SELECT * FROM Dev_DB"
searchquery = ndb.gql(gql_query)

BATCH_SIZE = 1
results, cursor, more = searchquery.fetch(BATCH_SIZE)

Выполнение вышеуказанного кода приводит к ValueError: need more than 1 value to unpack.

Ошибка решается, когда я задаю значение BATCH_SIZE как 3 вместо 1. Но, тем не менее, он выбирает только первую строку данных вместо всех 3.

Вся функция для справки:

def update_pose_order_db_controller(self):
    self.response.headers['Content-type']="text/html"
    self.response.out.write("<p>Hello there, Fetching from dev</p>")

    cursor_from_url = self.request.get('start_cursor')
    logging.info("Cursor in start is: {}".format(cursor_from_url))

    gql_query = "SELECT * FROM Dev_DB"
    searchquery = ndb.gql(gql_query)

    if cursor_from_url:
        cursor_from_url = Cursor(urlsafe=cursor_from_url)
        BATCH_SIZE = 2
        results, cursor, more = searchquery.fetch(BATCH_SIZE, start_cursor = cursor_from_url)
    else:
        BATCH_SIZE = 1
        results, cursor, more = searchquery.fetch(BATCH_SIZE)

    self.response.write(results.ans_list)

Проблема возникает в части else, поскольку на начать, курсор пуст. Любое значение для BATCH_SIZE> = 3 работает. Код никогда не переходил на if часть, потому что первоначальная загрузка не была успешной, и, следовательно, курсор не был установлен на URL в качестве параметра.

Я новичок в Google App Engine. Любая помощь приветствуется.

1 Ответ

1 голос
/ 10 апреля 2020

Я использовал fetch() вместо fetch_page(). fetch для DB и fetch_page() для NDB .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...