Módulo google.appengine.api.datastore
Resumo
A Python Datastore API usada por desenvolvedores de apps.
Define classes Entity, Query e Iterator, bem como métodos para todas as chamadas do armazenamento de dados. Também define conversões entre as classes Python e as contrapartes PB delas.
Os erros do armazenamento de dados são definidos no módulo datastore_errors. Esse módulo só é obrigatório para evitar importações circulares. O armazenamento de dados importa datastore_types, que precisa de BadValueError. Dessa maneira, ele não pode ser definido no armazenamento de dados.
Índice
- google.appengine.api.datastore.AllocateIds(model_key, size=None, **kwargs)source
Aloca um intervalo de códigos de tamanho ou com o máximo para a chave indicada.
Aloca um intervalo de códigos no armazenamento de dados. Dessa maneira, esses códigos não serão atribuídos automaticamente a novas entidades. Só é possível alocar IDs para chaves de modelo do seu aplicativo. Caso haja um erro, gera uma subclasse de datastore_errors.Error.
O tamanho ou o máximo precisa ser fornecido, mas não ambos. Se o tamanho for fornecido, um intervalo do tamanho indicado será retornado. Se o máximo for fornecido, o maior intervalo de códigos que são seguros para usar com um limite máximo será retornado (pode ser um intervalo vazio).
O máximo só precisará ser fornecido se você tiver um intervalo de códigos numéricos existente que queira reservar. Por exemplo, entidades de carregamento em massa que já tenham códigos. Se você não se importar com quais códigos recebe, use o tamanho.
Parâmetros-
model_key: chave ou string a ser veiculada como um modelo que especifica a sequência em que se alocam códigos.
-
size: inteiro, número de códigos a serem alocados.
-
max: inteiro, limite máximo do intervalo de códigos a serem alocados.
-
config: configuração opcional a ser usada nesta solicitação.
(start, end) do intervalo alocado, inclusive.
-
- google.appengine.api.datastore.AllocateIdsAsync(model_key, size=None, **kwargs)source
-
Aloca de maneira assíncrona um intervalo de códigos.
Idêntico ao datastore.AllocationIds(), exceto por retornar um objeto assíncrono. Chame get_result() no valor de retorno a ser bloqueado na chamada e receba os resultados.
- google.appengine.api.datastore.CreateConfig(**kwds)source
Crie um objeto Configuration a ser usado na configuração de chamadas do armazenamento de dados.
Essa configuração pode ser passada para a maioria das chamadas do armazenamento de dados usando o argumento "config =…".
Parâmetros-
deadline: prazo opcional. O padrão é None (o que significa que o prazo padrão do sistema será usado, geralmente cinco segundos).
-
on_completion: função de retorno de chamada opcional. O padrão é None. Se especificado, ele será chamado com um objeto UserRPC como argumento quando um RPC for concluído.
-
read_policy: política de leitura opcional, definida como EVENTUAL_CONSISTENCY, para acabar ativando leituras consistentes (ou seja, leituras que passam a ser atendidas de uma versão anterior do armazenamento de dados em alguns casos). A política de leitura padrão pode precisar esperar até que as transações em andamento sejam confirmadas.
-
**kwds: outros argumentos de palavra-chave, desde que eles sejam compatíveis com datastore_rpc.Configuration().
Uma instância de datastore_rpc.Configuration.
-
- google.appengine.api.datastore.CreateRPC(service='datastore_v3', deadline=None, callback=None, read_policy=None)source
Crie uma RPC a ser usada na configuração de chamadas do armazenamento de dados.
OBSERVAÇÃO: esta função existe para compatibilidade com versões anteriores. Use CreateConfig(), em vez disso. OBSERVAÇÃO: este último usa "on_completion", uma função que utiliza um argumento, e CreateRPC usa "callback", que é uma função sem argumentos.
Parâmetros-
service: string opcional. Para compatibilidade com versões anteriores, precisa ser "datastore_v3".
-
deadline: int ou flutuante opcional, prazo para chamadas em segundos.
-
callback: chamável opcional, um callback acionado quando esta RPC é concluída. Não aceita argumentos.
-
read_policy: política de leitura opcional, definida como EVENTUAL_CONSISTENCY, para acabar ativando leituras consistentes (ou seja, leituras que passam a ser atendidas de uma versão anterior do armazenamento de dados em alguns casos). A política de leitura padrão pode precisar esperar até que as transações em andamento sejam confirmadas.
Uma instância de UserRPC.
-
- google.appengine.api.datastore.CreateTransactionOptions(**kwds)source
Crie um objeto Configuration a ser usado na configuração de transações.
Essa configuração pode ser passada como o primeiro argumento de run_in_transaction_option.
Parâmetros-
deadline: prazo opcional. O padrão é None (o que significa que o prazo padrão do sistema será usado, geralmente cinco segundos).
-
on_completion: função de retorno de chamada opcional. O padrão é None. Se especificado, ele será chamado com um objeto UserRPC como argumento quando um RPC for concluído.
-
xg: definido como verdadeiro para permitir transações entre grupos (somente armazenamento de dados de alta replicação).
-
retries: defina o número de novas tentativas de uma transação.
-
**kwds: outros argumentos de palavra-chave, desde que sejam compatíveis com datastore_rpc.TransactionOptions().
Uma instância datastore_rpc.TransactionOptions.
-
- class google.appengine.api.datastore.DatastoreAdapter(_id_resolver=None)source
-
Bases: google.appengine.datastore.datastore_rpc.AbstractAdapter
Adaptador entre tipos de dados definidos aqui (Entity etc.) e protobufs.
Consulte a classe base em datastore_rpc.py para mais documentos.
- entity_to_pb(entity)source
- index_direction_mappings = {1: 1, 2: 2}
- index_state_mappings = {1: 0, 2: 1, 3: 2, 4: 3}
- key_to_pb(key)source
- pb_to_entity(pb)Fonte
- pb_to_index(pb)Fonte
- pb_to_key(pb)Fonte
- google.appengine.api.datastore.Delete(keys, **kwargs)source
Exclui uma ou mais entidades do armazenamento de dados. Use com cuidado.
Exclui a(s) entidade(s) indicada(s) do armazenamento de dados. Só é possível excluir entidades do seu app. Caso haja um erro, gera uma subclasse de datastore_errors.Error.
Parâmetros-
a chave primária (#):
-
keys: chave ou string ou lista de Keys ou strings
-
config: configuração opcional a ser usada nesta solicitação, precisa ser especificada como um argumento de palavra-chave.
TransactionFailedError, caso não seja possível confirmar Delete.
-
- google.appengine.api.datastore.DeleteAsync(keys, **kwargs)source
-
Exclui de maneira assíncrona uma ou mais entidades do armazenamento de dados.
Idêntica a datastore.Delete(), exceto por retornar um objeto assíncrono. Chame get_result() no valor de retorno a ser bloqueado na chamada.
- class google.appengine.api.datastore.Entity(kind, parent=None, _app=None, name=None, id=None, unindexed_properties=[], namespace=None, **kwds)source
-
Bases: dict
Uma entidade do armazenamento de dados.
Inclui acessadores somente leitura para código do app, tipo e chave primária. Também dá acesso em estilo de dicionário a propriedades.
- static FromPb(pb, validate_reserved_properties=True, default_kind='
')source Método de fábrica estática. Retorna a representação de Entity do buffer de protocolo indicado (datastore_pb.Entity).
Parâmetros-
pb: datastore_pb.Entity ou codificação de str de um datastore_pb.Entity
-
validate_reserved_properties: obsoleto
-
default_kind: str, o tipo a ser usado se o pb não tiver chave.
a representação de Entity de pb
Tipo de retorno-
- ToPb()source
Converte este Entity na representação do buffer de protocolo.
Retornaentity_pb.Entity
- ToXml()source
-
Retorna uma representação XML dessa entidade. As propriedades atom e gd:namespace são convertidas em XML, de acordo com os respectivos esquemas delas. Para mais informações, consulte:
http://www.atomenabled.org/developers/syndication/ https://developers.google.com/gdata/docs/1.0/elements
Isso não é otimizado. Ele não precisa ser usado em qualquer lugar perto do código que seja crítico para o desempenho.
- app()source
-
Retorna o nome do aplicativo que criou essa entidade, uma string ou None, caso não esteja definido.
- copy()source
-
O método de cópia não é compatível.
- entity_group()source
-
Retorna o grupo de entidades dessa entidade como uma Key.
A Key retornada ficará incompleta se essa for uma entidade raiz e a chave estiver incompleta.
- is_projection()source
-
Retorna caso essa entidade seja uma projeção da entidade completa.
Entidades projetadas: - pode não conter todas as propriedades da entidade original; - contêm apenas valores únicos para listas; - pode não conter valores com o mesmo tipo da entidade original.
- is_saved()source
-
Retorna caso esta entidade tenha sido salva no armazenamento de dados.
- key()source
-
Retorna a chave primária dessa entidade, uma instância de Key.
- kind()source
-
Retorna o tipo da entidade, uma string.
- namespace()source
-
Retorna o namespace dessa entidade, uma string ou None.
- parent()source
-
Retorna o pai dessa entidade, como uma Key. Caso essa entidade não tenha pai, retorna None.
- set_unindexed_properties(unindexed_properties)source
- setdefault(name, value)source
-
Caso a propriedade exista, retorna o valor dela. Do contrário, é definida como o valor.
Caso o nome da propriedade seja a string vazia ou não seja uma, gera BadPropertyError. Caso o valor não seja compatível, gera BadValueError.
- unindexed_properties()source
-
Retorna as propriedades não indexadas dessa entidade, como um frozenset de strings.
- update(other)source
-
Atualiza as propriedades dessa entidade dos valores em outras.
Caso algum nome de propriedade seja a string vazia ou não seja uma string, gera BadPropertyError. Caso algum valor não seja compatível, gera BadValueError.
- static FromPb(pb, validate_reserved_properties=True, default_kind='
- google.appengine.api.datastore.Get(keys, **kwargs)source
Recupera uma ou mais entidades do armazenamento de dados.
Recupera a entidade ou as entidades com a(s) chave(s) Indicada(s) do armazenamento de dados e as retorna como objetos Entity totalmente preenchidos, conforme definido abaixo. Caso haja um erro, gera uma subclasse de datastore_errors.Error.
Se as chaves forem uma chave ou uma string única, uma Entity será retornada, ou EntityNotFoundError será gerado se nenhuma entidade existente corresponder à chave.
No entanto, se as chaves forem uma lista ou uma tupla, uma lista de entidades será retornada correspondente à sequência de chaves. Ela incluirá entidades para chaves que foram encontradas e marcadores None para chaves que não foram encontradas.
Parâmetros-
keys: chave ou string ou lista de Keys ou strings
-
config: configuração opcional a ser usada nesta solicitação, precisa ser especificada como um argumento de palavra-chave.
Entidade ou lista de objetos Entity
-
- google.appengine.api.datastore.GetAsync(keys, **kwargs)source
-
Recupera de maneira assíncrona uma ou mais entidades do armazenamento de dados.
Idêntico a datastore.get(), exceto por retornar um objeto assíncrono. Chame get_result() no valor de retorno a ser bloqueado na chamada e receba os resultados.
- google.appengine.api.datastore.GetIndexes(**kwargs)source
Retorna os índices de aplicativo e os estados deles.
Parâmetrosconfig: configuração opcional a ser usada nesta solicitação, precisa ser especificada como um argumento de palavra-chave.
RetornaUma lista (Index, Index.[BUILDING|SERVING|DELETING|ERROR]) Um índice pode estar nos seguintes estados:
Index.BUILDING: o índice está sendo criado e, portanto, não pode exibir consultas Index.SERVING: o índice está pronto para exibir consultas Index.DELETING: o índice está sendo excluído Index.ERROR: o índice encontrou um erro no estado BUILDING
- google.appengine.api.datastore.GetIndexesAsync(**kwargs)source
-
Recupera de maneira assíncrona os índices de aplicativo e os estados deles.
Idêntico a GetIndexes(), exceto por retornar um objeto assíncrono. Chame get_result() no valor de retorno a ser bloqueado na chamada e receba os resultados.
- google.appengine.api.datastore.GetRpcFromKwargs(kwargs, convert_rpc=False, config_class=google.appengine.datastore.datastore_rpc.Configuration)source
Receba um objeto Configuration dos argumentos de palavra-chave.
Ele é essencialmente um auxiliar interno para as diversas APIs públicas abaixo, como Get().
Parâmetros-
kwargs: um dict contendo os argumentos de palavra-chave passados para uma API pública.
-
convert_rpc: caso uma RPC precise ser convertida ou passada diretamente.
-
config_class: a classe de configuração que precisa ser gerada.
Uma instância de UserRPC, uma instância de Configuration ou None.
GeraTypeError caso argumentos de palavra-chave inesperados estejam presentes.
-
- class google.appengine.api.datastore.Index(index_id, kind, has_ancestor, properties)source
-
Bases: google.appengine.api.datastore._BaseIndex
Um índice de armazenamento de dados.
- HasAncestor()source
-
Indica se este é um índice de ancestral, um booleano.
- Id()source
-
Retorna o código do índice, um longo.
- Kind()source
-
Retorna o tipo de índice, uma string. String vazia (''), caso não haja nenhuma.
- Properties()source
-
Retorna as propriedades do índice. uma tupla de (nome do índice como uma string, tuplas [ASCENDING|DESCENDING]).
- google.appengine.api.datastore.IsInTransaction()source
Determine se ele já está em execução na transação.
RetornaTrue caso já esteja em executando na transação, ou False.
- class google.appengine.api.datastore.Iterator(batcher)source
-
Bases: google.appengine.datastore.datastore_query.ResultsIterator
Wrapper fino do datastore_query.ResultsIterator.
Obsoleto, não use, apenas para compatibilidade com versões anteriores.
- GetCompiledCursor(query)source
- GetIndexList()source
-
Retorna a lista de índices usados para realizar a consulta.
- index_list()source
-
Retorna a lista de índices usados para realizar a consulta.
- class google.appengine.api.datastore.MultiQuery(bound_queries, orderings)source
-
Bases: google.appengine.api.datastore.Query
Classe que representa uma consulta que requer várias consultas do armazenamento de dados.
Na verdade, essa classe é uma subclasse de datastore.Query, já que ela pretende atuar como um objeto Query normal (compatível com a mesma interface).
Não aceita consultas somente de chaves, porque precisa de entidades inteiras para mesclá-las. Não será verdadeiro se não houver ordens de classificação, ou se a ordem de classificação for __key__, mas permitindo consultas somente de chaves nesses casos, mas não em outros, porque isso seria confuso.
- Count(limit=1000, **kwargs)source
Retorna o número de entidades correspondentes a esta consulta.
Retornará a contagem desduplicada de resultados. Chamará a função Get() mais eficiente se um limite for indicado.
Parâmetros-
limite: número máximo de entradas a serem contadas (para qualquer result > limit, return
-
limit) –
-
config: configuração opcional a ser usada nesta solicitação.
a contagem do número de entradas retornadas.
-
- Get(limit, offset=0, **kwargs)source
Obsoleto, use list(Run(…)) em seu lugar.
Parâmetros-
limit: int ou longo que representa o número máximo de entidades a serem retornadas.
-
offset: int ou longo que representa o número de entidades a serem ignoradas
-
kwargs: quaisquer argumentos de palavra-chave aceitos por datastore_query.QueryOptions().
Uma lista de entidades com o máximo de entradas de “limite” (menos caso a consulta seja concluída antes da leitura dos valores de limite).
-
- GetCompiledCursor()source
- GetCompiledQuery()source
-
Somente interno, não use.
- GetCursor()source
- GetIndexList()source
- Run(**kwargs)source
Retorne uma saída iterável com todos os resultados na ordem.
Mescle a classificação dos resultados. Crie primeiramente uma lista de iteradores, examine-os e produza resultados na ordem.
Parâmetroskwargs: quaisquer argumentos de palavra-chave aceitos por datastore_query.QueryOptions().
RetornaUm iterador para o conjunto de resultados.
- class SortOrderEntity(entity_iterator, orderings)source
-
Bases: object
Permita comparações de entidade usando ordens fornecidas.
O iterador passado para o construtor acaba sendo consumido por meio de chamadas para GetNext(), que geram novas SortOrderEntitys com as mesmas ordens.
- CmpProperties(that)source
Compare duas entidades e retorne a ordem relativa.
Compara-se com a baseada nas ordens de classificação atuais e as ordens de chave entre elas. Retorna negativo, 0 ou positivo, caso seja menor que, igual a ou maior que. Essa comparação retorna como se todos os valores fossem colocados em ordem crescente (maior valor por último). Usa somente as ordens de classificação para comparar (ignora
chaves).
Parâmetrosthat: SortOrderEntity
RetornaNegativo caso self < that Zero caso self == that Positivo caso self > that
- GetEntity()source
-
Recupera a entidade encapsulada.
- GetNext()source
-
Encapsule e retorne a próxima entidade.
A entidade é recuperada do iterador indicado no momento da construção.
- google.appengine.api.datastore.NonTransactional(*args, **kwds)source
Um decorador que garante que uma função seja executada fora de uma transação.
Caso haja uma transação existente (e allow_existing=True), a transação existente é pausada e a função é executada.
Parâmetros-
_func: não use
-
allow_existing: caso falso, lance uma exceção caso chamado dentro de uma transação
Um wrapper da função decorada que garante que ela seja executada fora de uma transação.
-
- google.appengine.api.datastore.NormalizeAndTypeCheck(arg, types)source
Normaliza e verifica o argumento indicado.
Parâmetros-
arg: uma instância ou um iterável do(s) tipo(s) indicado(s)
-
types: tipo permitido ou tupla de tipos
Uma tupla (list, bool). A lista é uma cópia normalizada e superficial do argumento. O booleano será True se o argumento for uma sequência, False se for um único objeto.
Gera-
AssertionError: ente os tipos estão lista ou tupla.
-
BadArgumentError: arg não é uma instância ou uma sequência de um dos tipos
-
indicados.
-
- google.appengine.api.datastore.NormalizeAndTypeCheckKeys(keys)source
Normaliza e verifica se o argumento indicado é uma chave válida.
Um wrapper em torno de NormalizeAndTypeCheck() que aceita strings, chaves e entidades e normaliza como chaves.
Parâmetroskeys: uma chave ou uma sequência de chaves
RetornaUma tupla (list of Keys, bool). Consulte NormalizeAndTypeCheck.
Gera-
BadArgumentError: arg não é uma instância ou uma sequência de um dos tipos
-
indicados.
-
- google.appengine.api.datastore.Put(entities, **kwargs)source
Armazene uma ou mais entidades no armazenamento de dados.
As entidades podem ser novas ou já existentes. Para novas entidades, Put() preencherá o código do aplicativo e a chave atribuída pelo armazenamento de dados.
Se o argumento for uma entidade única, uma única Key será retornada. Se o argumento for uma lista de entidades, uma lista de chaves será retornada.
Parâmetros-
entities: entidade ou lista de entidades
-
config: configuração opcional a ser usada nesta solicitação, precisa ser especificada como um argumento de palavra-chave.
Chave ou lista de chaves
GeraTransactionFailedError, caso não seja possível confirmar Put.
-
- google.appengine.api.datastore.PutAsync(entities, **kwargs)source
-
Armazene de maneira assíncrona uma ou mais entidades no armazenamento de dados.
Idêntico a datastore.Put(), exceto por retornar um objeto assíncrono. Chame get_result() no valor de retorno a ser bloqueado na chamada e receba os resultados.
- class google.appengine.api.datastore.Query(kind=None, filters={}, _app=None, keys_only=False, compile=True, cursor=None, namespace=None, end_cursor=None, projection=None, distinct=None, _namespace=None)source
-
Bases: dict
Uma consulta de armazenamento de dados.
Em vez disso, considere o uso de appengine.ext.gql.Query! Ele oferece uma interface de linguagem de consulta na mesma funcionalidade.
As consultas são usadas para recuperar entidades que correspondem a determinados critérios, inclusive o código do aplicativo, o tipo e os filtros de propriedade. Os resultados também podem ser classificados por propriedades.
O código do aplicativo e o tipo são obrigatórios. Somente entidades do aplicativo indicado, do tipo especificado, são retornadas. Caso um ancestral seja definido, com Ancestor(), somente entidades com esse ancestral são retornadas.
Os filtros de propriedade são usados para fornecer critérios com base em valores de propriedade individuais. Um filtro compara uma propriedade específica em cada entidade com um determinado valor ou lista de valores possíveis.
Uma entidade será retornada se os valores de propriedade corresponderem a todos os filtros da consulta. Em outras palavras, os filtros são combinados com AND, e não OR. Se uma entidade não tiver um valor para uma propriedade usada em um filtro, ela não será retornada.
Os filtros de propriedade mapeiam strings de filtro da forma "<nome da propriedade> <operador>" para filtrar valores. Use acessadores de dicionário para definir filtros de propriedade assim:
> query = Query(‘Person’) > query[‘name =’] = ‘Ryan’ > query[‘age >=’] = 21
Esta consulta retorna todas as entidades Person em que a propriedade name seja "Ryan" e a propriedade age seja pelo menos 21.
Outra maneira de criar essa consulta é:
> query = Query(‘Person’) > query.update({‘name =’: ‘Ryan’, ‘age >=’: 21})
Os operadores compatíveis são =, >, <, >= e <=. Só um filtro de desigualdade pode ser usado por consulta. Um número qualquer de filtros de igualdade pode ser usado em uma única consulta.
Um valor de filtro pode ser uma lista ou uma tupla de valores. Isso é interpretado como vários filtros com a mesma string de filtro e valores diferentes, todos com AND. Por exemplo, essa consulta retorna tudo com as tags "google" e "app engine":
> Query(‘Person’, {‘tag =’: (‘google’, ‘app engine’)})
As entidades resultantes podem ser retornadas em ordens diferentes. Use o método Order() para especificar propriedades com resultados que serão classificados e em qual direção.
Os filtros e as ordens podem ser fornecidos a qualquer momento antes da consulta ser executada. Quando a consulta é totalmente especificada, Run() executa a consulta e retorna um iterador. Os resultados da consulta podem ser acessados por meio do iterador.
Um objeto de consulta poderá ser reutilizado depois de ter sido executado. Os filtros e as ordens podem ser alterados para criar uma consulta modificada.
Se souber de quantas entidades de resultado você precisa, use Get() para buscá-las:
> query = Query(‘Person’, {‘age >’: 21}) > para a pessoa na consulta.Get(4): > print "Tenho quatro cervejas restantes. Tome uma por minha conta, %s!" % person['name']
Se não souber de quantos resultados precisa, ou se precisar de todos, você poderá receber um iterador nos resultados chamando Run():
> para pessoa em Query('Person', {'age >': 21}).Run(): > print "Tome uma cerveja por minha conta, %s!" % person['name']
Get() é mais eficiente que Run(). Dessa maneira, use Get() sempre que possível.
Por fim, o método Count() retorna o número de entidades de resultado correspondentes à consulta. A contagem retornada é armazenada em cache. As chamadas Count() sucessivas não verificarão novamente o armazenamento de dados, a menos que a consulta seja alterada.
- ANCESTOR_FIRST = 2
- ASCENDING = 1
- Ancestor(ancestor)source
Define um ancestral para esta consulta.
Isso restringe a consulta para retornar apenas entidades resultantes que sejam descendentes de uma determinada entidade. Em outras palavras, todos os resultados terão o ancestral como pai, como pai do pai e assim por diante.
Gera BadArgumentError ou BadKeyError caso o pai não seja uma entidade ou chave existente no armazenamento de dados.
Parâmetros-
a chave precisa estar completa (#) -
-
ancestor: Entity ou Key
# esta consulta
-
- Count(limit=1000, **kwargs)source
Retorna o número de entidades correspondentes a essa consulta.
Parâmetros-
um número ou None. Caso haja mais resultados além deste, pare short (limit) -
-
apenas retorna esse número. Fornecer este argumento deixa a contagem (e) -
-
mais eficiente. (operação) –
-
config: configuração opcional a ser usada nesta solicitação.
O número de resultados.
-
- DESCENDING = 2
- FILTER_FIRST = 3
- FILTER_REGEX = <_sre.SRE_Pattern object>
- Get(limit, offset=0, **kwargs)source
Obsoleto, use list(Run(…)) em seu lugar.
Parâmetros-
limit: int ou longo que representa o número máximo de entidades a serem retornadas.
-
offset: int ou longo que representa o número de entidades a serem ignoradas
-
kwargs: quaisquer argumentos de palavra-chave aceitos por datastore_query.QueryOptions().
# uma lista de entidades [Entity, …]
-
- GetBatcher(config=None)source
Executa esta consulta e retorna um datastore_query.Batcher.
Ele não precisa ser usado por desenvolvedores de aplicativo. Use Get() em vez disso.
Parâmetrosconfig: configuração opcional a ser usada nesta solicitação.
Retorna# um iterador que dá acesso aos resultados da consulta Iterator
- GetCompiledCursor()source
Receba o cursor da última execução desta consulta.
- A origem deste cursor varia de acordo com a última chamada feita:
-
-
Run: um cursor que apontará logo depois do último resultado recebido do iterador retornado.
-
Get: um cursor que apontará logo depois do último resultado na lista retornada.
-
Count: um cursor que apontará imediatamente depois do último resultado contado.
-
Um objeto datastore_query.Cursor que pode ser usado em solicitações de consulta subsequentes.
GeraAssertionError: a consulta ainda não foi executada ou não pode ser compilada.
- GetCompiledQuery()source
Retorna a representação pb somente interna da última consulta executada.
Não use.
GeraAssertionError: consulta não compilada ou ainda não executada.
- GetCursor()source
Receba o cursor da última execução desta consulta.
- A origem deste cursor varia de acordo com a última chamada feita:
-
-
Run: um cursor que apontará logo depois do último resultado recebido do iterador retornado.
-
Get: um cursor que apontará logo depois do último resultado na lista retornada.
-
Count: um cursor que apontará imediatamente depois do último resultado contado.
-
Um objeto datastore_query.Cursor que pode ser usado em solicitações de consulta subsequentes.
GeraAssertionError: a consulta ainda não foi executada ou não pode ser compilada.
- GetDistinct()source
Retorna True caso a instância atual seja distinta.
RetornaUm booleano que indica se a sinalização distinta está definida.
- GetFilterPredicate()source
Retorna um datastore_query.FilterPredicate para a instância atual.
Retornadatastore_query.FilterPredicate ou None se nenhum filtro estiver definido na Query atual.
- GetIndexList()source
Receba a lista de índices da última execução desta consulta.
RetornaUma lista de índices usados pela última execução desta consulta.
GeraAssertionError: a consulta ainda não foi executada.
- GetOrder()source
Recebe um datastore_query.Order para a instância atual.
Retornadatastore_query.Order ou None caso não haja ordens de classificação definidas na Query atual.
- GetQuery()source
-
Retorna uma datastore_query.Query para a instância atual.
- GetQueryOptions()source
-
Retorna uma datastore_query.QueryOptions para a instância atual.
- Hint(hint)source
Define uma dica de como esta consulta precisa ser executada.
A dica de consulta nos dá informações sobre a melhor maneira de executar a consulta. Atualmente, só podemos fazer uma verificação de índice. Dessa maneira, a dica de consulta precisa ser usada para indicar qual índice precisamos verificar.
Use FILTER_FIRST se o primeiro filtro corresponder apenas a alguns resultados. Neste caso, será mais eficiente verificar o índice dessa propriedade, carregar os resultados na memória e aplicar os filtros e as ordens de classificação restantes.
Da mesma maneira, use ANCESTOR_FIRST caso o ancestral da consulta tenha apenas alguns descendentes. Nesse caso, será mais eficiente verificar todas as entidades abaixo do ancestral e carregá-las na memória primeiro.
Use ORDER_FIRST caso a consulta tenha uma ordem de classificação e o conjunto de resultados seja grande ou caso você queira buscar apenas os primeiros resultados. Neste caso, não precisamos tentar carregar todos os resultados na memória. Em vez disso, precisamos verificar o índice dessa propriedade, que está na ordem classificada.
As dicas são ignoradas no armazenamento de dados v3 no momento.
- Arg:
-
um de datastore.Query.[ORDER_FIRST, ANCESTOR_FIRST, FILTER_FIRST]
# esta consulta
- INEQUALITY_OPERATORS = frozenset([u'<=', u'>=', u'<', u'>'])
- IsKeysOnly()source
-
Retorna True caso esta consulta seja somente de chaves. Do contrário, False.
- OPERATORS = {u'>=': 4, '==': 5, u'<=': 2, u'=': 5, u'<': 1, u'>': 3}
- ORDER_FIRST = 1
- Order(*orderings)source
Especifica como os resultados da consulta precisam ser classificados.
As entidades de resultado serão classificadas pelo primeiro argumento de propriedade e depois pelo segundo e assim por diante. Por exemplo, este:
> query = Query(‘Person’) > query.Order(‘bday’, (‘age’, Query.DESCENDING))
classifica todos na ordem dos aniversários deles, começando em 1º de janeiro. As pessoas com o mesmo aniversário são classificadas por idade, das mais velhas para as mais novas.
A direção de cada propriedade de classificação pode ser fornecida. Caso omitida, o padrão é crescente.
Order() pode ser chamado várias vezes. Cada chamada redefine a ordem de classificação do zero.
Se existir um filtro de desigualdade nessa Query, ele precisará ser a primeira propriedade passada para Order. Um número qualquer de ordens de classificação poderá ser usado depois da propriedade do filtro de desigualdade. Sem filtros de desigualdade, um número qualquer de filtros com ordens diferentes pode ser especificado.
Entidades com vários valores para uma propriedade de ordem são classificadas pelo valor mais baixo.
Uma ordem de classificação implica um filtro de existência. Em outras palavras, Entities sem a propriedade da ordem de classificação são filtradas e não são incluídas nos resultados da consulta.
Se a propriedade da ordem de classificação tiver tipos diferentes em entidades diferentes, ou seja, se bob['id'] for um int e fred['id'] for uma string, as entidades serão agrupadas primeiro pelo tipo de propriedade e depois classificadas dentro do tipo. Nenhuma tentativa é feita de comparar valores de propriedade entre tipos.
Gera BadArgumentError caso algum argumento seja do formato errado.
Parâmetros-
As propriedades para classificação, na ordem. Cada argumento pode ser um (#) -
-
string ou (#) –
# esta consulta
-
- Run(**kwargs)source
Executa esta consulta.
Caso uma string de filtro seja inválida, gera BadFilterError. Caso um valor de filtro seja inválido, gera BadValueError. Caso um filtro IN seja fornecido e uma ordem de classificação em outra propriedade seja fornecida, BadQueryError é gerado.
Se você souber com antecedência quantos resultados quer, use limit=#. É mais eficiente.
Parâmetroskwargs: quaisquer argumentos de palavra-chave aceitos por datastore_query.QueryOptions().
Retorna# um iterador que dá acesso aos resultados da consulta Iterator
- UPPERBOUND_INEQUALITY_OPERATORS = frozenset(['<=', '<'])
- copy()source
-
O método de cópia não é compatível.
- setdefault(filter, value)source
-
Caso o filtro exista, retorna o valor dele. Do contrário, é definida como o valor.
Caso o nome da propriedade seja a string vazia ou não seja uma, gera BadPropertyError. Caso o valor não seja compatível, gera BadValueError.
- update(other)source
-
Atualiza os filtros dessa consulta para outros.
Caso alguma string de filtro seja inválida, gera BadFilterError. Caso algum valor não seja de tipo compatível, gera BadValueError.
- google.appengine.api.datastore.RunInReadOnlyTransaction(function, *args, **kwargs)source
Executa uma função dentro de uma transação de armazenamento de dados somente leitura.
Uma transação somente leitura não pode executar gravações, mas pode ser executada com mais eficiência.
Executa a função fornecida pelo usuário dentro de uma transação somente leitura e tenta novamente o número padrão de vezes.
Parâmetros-
function: uma função a ser executada dentro da transação em todos os argumentos restantes
-
*args: argumentos posicionais para função.
-
**kwargs: argumentos de palavra-chave para função.
o valor de retorno da função, se houver
GeraTransactionFailedError, caso não seja possível confirmar a transação.
-
- google.appengine.api.datastore.RunInReadOnlyTransactionOptions(options, function, *args, **kwargs)source
Executa uma função dentro de uma transação de armazenamento de dados somente leitura.
Uma transação somente leitura não pode executar gravações, mas pode ser executada com mais eficiência.
Assim como RunInTransactionOptions, mas com uma transação somente leitura.
Parâmetros-
options: TransactionOptions que especificam opções (número de novas tentativas etc.) para esta transação
-
function: uma função a ser executada dentro da transação em todos os argumentos restantes *args: argumentos posicionais para função. **kwargs: argumentos de palavra-chave para função.
o valor de retorno da função, se houver
GeraTransactionFailedError, caso não seja possível confirmar a transação.
-
- google.appengine.api.datastore.RunInTransaction(function, *args, **kwargs)source
Executa uma função dentro de uma transação de armazenamento de dados.
Executa a função fornecida pelo usuário dentro da transação e tenta novamente o número padrão de vezes.
- Args:
-
- function: uma função a ser executada dentro da transação em todos os
-
argumentos restantes
*args: argumentos posicionais para função. **kwargs: argumentos de palavra-chave para função.
o valor de retorno da função, se houver
GeraTransactionFailedError, caso não seja possível confirmar a transação.
- google.appengine.api.datastore.RunInTransactionCustomRetries(retries, function, *args, **kwargs)source
Executa uma função dentro de uma transação de armazenamento de dados.
Executa a função fornecida pelo usuário dentro da transação, com um número especificado de novas tentativas.
- Args:
-
retries: número de novas tentativas (sem contar a tentativa inicial) function: uma função a ser executada dentro da transação em todos os
argumentos restantes
*args: argumentos posicionais para função. **kwargs: argumentos de palavra-chave para função.
o valor de retorno da função, se houver
GeraTransactionFailedError, caso não seja possível confirmar a transação.
- google.appengine.api.datastore.RunInTransactionOptions(options, function, *args, **kwargs)source
Executa uma função dentro de uma transação de armazenamento de dados.
Executa a função fornecida pelo usuário dentro de uma transação de armazenamento de dados ACID repleta de recursos. Cada Put, Get e Delete chama a função feita dentro da transação. Todas as entidades envolvidas nessas chamadas precisam pertencer ao mesmo grupo de entidades. As consultas são compatíveis, desde que especifiquem um ancestral pertencente ao mesmo grupo de entidades.
Os argumentos à direita são passados para a função como argumentos posicionais. Se a função retornar um valor, esse valor será retornado por RunInTransaction. Do contrário, ele retornará None.
A função pode gerar qualquer exceção para reverter a transação, em vez de confirmá-la. Se isso acontecer, a transação será revertida, e a exceção será regenerada até o autor da chamada de RunInTransaction.
Se quiser reverter intencionalmente, mas não tiver uma exceção apropriada para gerar, você poderá gerar uma instância de datastore_errors.Rollback. Isso causará uma reversão, mas não será regenerado até o autor da chamada.
A função pode ser executada mais de uma vez. Dessa maneira, ela precisa ser idempotente. Ela precisa evitar efeitos colaterais, e não ter nenhum com segurança para ocorrer várias vezes. Isso inclui modificar os argumentos, porque eles se mantêm em invocações da função. No entanto, isso não inclui chamadas Put, Get e Delete, obviamente.
Exemplo de uso:
> def decrement(key, amount=1): > counter = datastore.Get(key) > counter[‘count’] -= amount > se counter[‘count’] < 0: # não deixe o contador negativo > raise datastore_errors.Rollback() > datastore.Put(counter) > > counter = datastore.Query(‘Counter’, {‘name’: ‘foo’}) > datastore.RunInTransaction(decrement, counter.key(), amount=5)
As transações atendem a propriedades ACID tradicionais. Elas são:
-
Atômicas. Todas as operações de uma transação são executadas ou nenhuma delas é.
-
Consistentes. O estado do armazenamento de dados é consistente antes e depois de uma
transação, seja ela confirmada ou revertida. Invariantes como "toda entidade tem uma chave primária" são preservadas.
-
Isoladas. As transações funcionam em um instantâneo do armazenamento de dados. Outras
operações de armazenamento de dados não veem efeitos intermediados da transação. Elas só verão os efeitos depois de confirmadas.
-
Duráveis. No commit, todas as gravações são mantidas no armazenamento de dados.
As transações aninhadas não são compatíveis.
Parâmetros-
options: TransactionOptions que especificam opções (número de novas tentativas etc.) para esta transação
-
function: uma função a ser executada dentro da transação em todos os argumentos restantes *args: argumentos posicionais para função. **kwargs: argumentos de palavra-chave para função.
o valor de retorno da função, se houver
GeraTransactionFailedError, caso não seja possível confirmar a transação.
-
- google.appengine.api.datastore.Transactional(_func=None, **kwargs)source
Um decorador que garante que uma função é executada em uma transação.
Propagação de padrões para datastore_rpc.TransactionOptions.ALLOWED, o que significa que qualquer transação existente será usada no lugar da criação de uma nova.
AVISO: a leitura do armazenamento de dados durante uma transação não verá nenhuma alteração feita na mesma transação. Se a função decorada depende de ver todas as alterações feitas no escopo de chamada, defina propagation=datastore_rpc.TransactionOptions.NESTED.
Parâmetros-
_func: não use.
-
**kwargs: opções de configuração de TransactionOptions.
Um wrapper para a função indicada que cria uma nova transação, se necessário.
-