• Официальный сайт SDK
  • Сайт с примерами кода

Функции

Пакет google.appengine.ext.db содержит определения следующих функций:

get(keys)

Выполняет запрос одного или нескольких объектов с использованием указанных значений их ключей.

Параметры:

keys
Объект типа Key или список объектов типа Key.

Если функции передан один экземпляр класса Key, то возвращаемое значение будет экземпляром соответствующего класса Model или None, если объект с заданным ключом в хранилище не обнаружен. Если функции передан список экземпляров класса Key, то возвращаемым значением будет соответствующий список экземпляров класса модели, с указанием значений None в тех случаях, когда объект с соответствующим ключом не существует.

Смотрите описание метода Model.get().

put(models)

Помещает один или несколько экземпляров класса модели в хранилище.

Параметры:

models
Экземпляр класса модели или их список, которые требуется сохранить.

Если в параметре передано несколько экземпляров модели, то их сохранение происходит в одной транзакции. Поэтому подразумевается, что все эти объекты, передаваемые за один вызов функции, будут относиться к одной группе. Смотрите раздел Ключи и группы объектов.

Возвращает объект типа Key (если в параметре указан единственный экземпляр модели) или список объектов типа Key (в том случае, если задано множество экземпляров), которые соответствуют помещенным в хранилище экземплярам модели.

delete(models)

Производит удаление одного или нескольких экземпляров класса в хранилище.

Параметры:

models
Экземпляр модели, ключ типа Key для объекта или список экземпляров класса модели или ключей, подлежащих удалению.

Если в параметре передано несколько ключей или экземпляров модели, выполнение их удаления производится в одной транзакции. Поэтому подразумевается, что все эти объекты будут относиться к одной группе. Вызов функции с указанием нескольких значений не может быть использован для объектов, относящихся к разным группам. Смотрите раздел Ключи и группы объектов.

run_in_transaction(function, *args, **kwargs)

Производит запуск указанной функции с заданными операциями работы с данными как одну транзакцию. Если во время транзакции произойдет выдача исключения, то все произведенные изменения в хранилище будут восстановлены к прежним значениям.

Параметры:

function
Функция производит выполнение транзакции.
*args
Позиционные параметры, передаваемые в функцию.
**kwargs
Именованные параметры, передаваемые в функцию.

Если транзакционная функция возвращает какое-то значение, то функция run_in_transaction() также прозрачно передаст его вызвавшему ее коду.

Если функция сгенерирует исключение, то транзакция будет откачена. Если функция сгенерирует исключение Rollback, то оно не будет повторно выдано в вызвавшем ее коде. Для любых других исключений действует обратная операция - исключение будет повторно выдано в вызвавшем коде.

Хранилище использует оптимистичные блокировки данных и выполняет повтор транзакции. Если транзакция не может быть успешно зафиксирована, то функция run_in_transaction() выполнит ее снова и будет пытаться зафиксировать ее несколько раз. Так как функция с транзакцией может быть вызвана не один раз для одной и той же операции, то она не должна содержать какой-нибудь код, подразумевающий ее успешное выполнение.

Если в результате нескольких попыток транзакция так и не была зафиксирована, к примеру из-за блокировки данных другими пользователями, то выдается исключение TransactionFailedError.

Для получения дополнительной информации о транзакциях, обратитесь к разделу Транзакции.

CmRlZiBkZWNyZW1lbnQoa2V5LCBhbW91bnQ9MSk6CmNvdW50ZXIgPSBkYi5nZXQoa2V5KQpjb3VudGVyLmNvdW50IC09IGFtb3VudAppZiBjb3VudGVyLmNvdW50ICZsdDsgMDogIyDQvdC1INC/0L7Qt9Cy0L7Qu9GP0LXQvCDRgdGH0LXRgtGH0LjQutGDINC/0YDQuNC90LjQvNCw0YLRjCDQvtGC0YDQuNGG0LDRgtC10LvRjNC90YvQtSDQt9C90LDRh9C10L3QuNGPCnJhaXNlIGRiLlJvbGxiYWNrKCkKZGIucHV0KGNvdW50ZXIpCnEgPSBkYi5HcWxRdWVyeSgiU0VMRUNUICogRlJPTSBDb3VudGVyIFdIRVJFIG5hbWUgPSA6MSIsICJmb28iKQpjb3VudGVyID0gcS5nZXQoKQpkYi5ydW5faW5fdHJhbnNhY3Rpb24oZGVjcmVtZW50LCBjb3VudGVyLmtleSgpLCBhbW91bnQ9NSkK=