Pacchetto google.appengine.ext.db

Riepilogo

Livello di astrazione del database semplice basato su schema per il datastore.

Ispirato al livello di astrazione di Django sopra i database SQL, http://www.djangoproject.com/documentation/mode_api/. Il nostro è un po' più semplice e molto meno codice perché il datastore è molto più semplice rispetto ai database SQL.

Il modello di programmazione prevede di dichiarare le sottoclassi Python della classe Model, dichiarando le proprietà del datastore come membri di quella classe. Pertanto, se vuoi pubblicare una storia con titolo, corpo e data di creazione, procedi come segue:

class Story(db.Modello):

title = db.StringProperty() body = db.TextProperty() creato = db.DateTimeProperty(auto_now_add=True)

Puoi creare una nuova storia nel datastore con questo modello di utilizzo:

storia = Storia(title='Il mio titolo') story.body = 'Il mio corpo' story.put()

Puoi eseguire query per le entità Story utilizzando interfacce delle query integrate che mappano direttamente la sintassi e la semantica del datastore:

storie = Story.all().filter("date >=', ieri).order('-date') per la storia nelle storie:

stampa storia.titolo

Le dichiarazioni della proprietà applicano i tipi eseguendo la convalida al momento dell'assegnazione. Ad esempio, la proprietà DateTimeProperty impone l'assegnazione di oggetti timestamp validi e, se fornisci l'opzione "obbligatorio" per una proprietà, non puoi assegnare Nessuno a questa proprietà.

Supportiamo anche i riferimenti tra i modelli, quindi se una storia ha commenti, la rappresenteresti in questo modo:

class Comment(db.Model):

story = db.referenceProperty(Story) body = db.TextProperty()

Quando esci una storia dal datastore, il riferimento della storia viene risolto automaticamente la prima volta che vi viene fatto riferimento, il che semplifica l'utilizzo di istanze del modello senza eseguire ulteriori query manualmente:

commento = Comment.get(key) stampa del commento.story.title

Analogamente, puoi accedere all'insieme di commenti che fanno riferimento a ciascuna storia tramite questa proprietà tramite un riferimento inverso chiamato commento_set, che è una query preconfigurata per restituire tutti i commenti corrispondenti:

storia = Story.get(key) per il commento in story.comment_set:

stampa commento.body

Moduli secondari

google.appengine.ext.db.metadata

Modelli e funzioni di supporto per l'accesso ai metadati del datastore dell'app.

google.appengine.ext.db.polymodel

Supporto per query e modelli polimorfi.

google.appengine.ext.db.stats

Modelli da utilizzare per accedere alle statistiche sull'utilizzo del datastore specifiche dell'app.

Sommario

class google.appengine.ext.db.BlobProperty(*args, **kwds)source

Basi: google.appengine.ext.db.UnindexedProperty

Una stringa di byte che può superare i 1500 byte.

tipo_dati

alias di blob

class google.appengine.ext.db.BooleanProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db.Property

Una proprietà booleana.

tipo_dati

alias di bool

source(vuoto)

La proprietà booleana è vuota.

Il valore False non è vuoto.

Restituisce

Vero se il valore è Nessuno, in caso contrario Falso.

convalida(valore)origine

Convalida booleano.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è un'istanza di "bool".

class google.appengine.ext.db.ByteStringProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db.Property

Una breve stringa di byte (<=1500 byte).

Utilizza questo tipo per valori binari brevi che devono essere indicizzati. Se non hai bisogno di indicizzazione (indipendentemente dalla lunghezza), utilizza BlobProperty.

MAX_LENGTH = 1500
tipo_dati

alias di ByteString

convalida(valore)origine

Convalida la proprietà ByteString.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è un'istanza di "ByteString".

class google.appengine.ext.db.CategoryProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono Istanze di categoria.

tipo_dati

alias di categoria

class google.appengine.ext.db.ComputedProperty(value_function, index=True)Fonte

Basi: google.appengine.ext.db.Property

Proprietà utilizzata per la creazione di proprietà da altri valori.

Alcuni attributi non devono mai essere impostati dagli utenti, ma sono calcolati automaticamente in fase di runtime da altri valori della stessa entità. Questi valori sono implementati come proprietà permanenti perché forniscono chiavi di ricerca utili.

Una proprietà calcolata si comporta come le proprietà normali ad eccezione del fatto che non puoi impostarvi valori. Se provi a farlo, viene sollevato db.DerivedPropertyError che db.Model sa ignorare durante il tempo di caricamento dell'entità. Ogni volta che getattr viene utilizzato per la proprietà, il valore viene ricalcolato. Questo accade quando il modello chiama get_value_for_datastore sulla proprietà.

Esempio

stringa di importazione

class Person(Modello):

name = StringProperty(required=True)

@db.ComputedProperty def_meno_nome_caso(self):

Restituisce self.name.lower()

# Trova tutte le persone indipendentemente dal nome utilizzato. Person.gql(WHERE Lower_case_name=:1' % name_to_search_for.lower())

exception google.appengine.ext.db.ConfigurationErrororigine

Basi: google.appengine.api.datastore_errors.Error

Aumentato quando una proprietà o un modello vengono configurati in modo errato.

class google.appengine.ext.db.DateProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)source

Basi: google.appengine.ext.db.DateTimeProperty

Una proprietà di data, che memorizza una data senza un'ora.

tipo_dati

alias di data

get_updated_value_for_datastore(model_instance)origine

Ottieni un nuovo valore per la proprietà da inviare al datastore.

Restituisce

now() in base all'istanza di data nel caso dispari in cui auto_now è impostato su True, altrimenti AUTO_UPDATE_UNCHANGED.

get_value_for_datastore(model_instance)origine

Ottieni valore dalla proprietà da inviare al datastore.

Recuperiamo un valore date.date dall'istanza modello e restituiamo un'istanza timestamp.ora con il tempo impostato su zero.

Per informazioni dettagliate, consulta la documentazione sul metodo della classe base.

make_value_from_datastore(value)origine

Rappresentazione nativa di questa proprietà.

Riceviamo un valore timestamp.timestamp recuperato dall'entità e restituiamo un'istanza timestamp.date che rappresenta la parte di data.

Per informazioni dettagliate, consulta la documentazione sul metodo della classe base.

statica now()source

Visualizza ora come valore di data e ora.

Restituisce

"date" solo in "date".

convalida(valore)origine

Convalida data.

Restituisce

Un valore valido.

Aumenta
  • BadValueError se la proprietà non è un'istanza di "date",

  • oppure un'istanza di "timestamp" (che è una sottoclasse

  • di "date", ma per scopi pratici un tipo diverso).

class google.appengine.ext.db.DateTimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)origine

Basi: google.appengine.ext.db.Property

La classe base di tutte le nostre proprietà data/ora.

Gestiamo operazioni comuni, come la conversione tra tuple temporali e istanze di data e ora.

tipo_dati

alias di data e ora

valore_predefinito()origine

Valore predefinito per la data e l'ora.

Restituisce

value of now() in base all'istanza data-ora se è impostato auto_now o auto_now_add, altrimenti l'utente ha configurato l'implementazione del valore predefinito.

get_updated_value_for_datastore(model_instance)origine

Ottieni un nuovo valore per la proprietà da inviare al datastore.

Restituisce

now() in base all'istanza data-ora nel caso dispari in cui auto_now è impostato su True, altrimenti AUTO_UPDATE_UNCHANGED.

statica now()source

Visualizza ora come valore di data e ora completo.

Restituisce

"ora" come timestamp completo, inclusi ora e data.

convalida(valore)origine

Convalida data e ora.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è un'istanza di "timestamp".

exception google.appengine.ext.db.DerivedPropertyErrorsorgente

Basi: google.appengine.api.datastore_errors.Error

Aumentata quando si cerca di assegnare un valore a una proprietà derivata.

exception google.appengine.ext.db.DuplicaPropertyErrororigine

Basi: google.appengine.api.datastore_errors.Error

Aumentato quando una proprietà viene duplicata in una definizione di modello.

class google.appengine.ext.db.EmailProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono Istanze email.

tipo_dati

alias di Email

class google.appengine.ext.db.Expando(parent=None, key_name=None, _app=None, **kwds)source

Basi: google.appengine.ext.db.Model

Modello espandibile in modo dinamico.

Un'estensione non richiede (ma può comunque trarre vantaggio) dalla definizione di qualsiasi proprietà prima che possa essere utilizzata per archiviare informazioni nel datastore. Le proprietà possono essere aggiunte a un oggetto espandibile eseguendo semplicemente un'assegnazione. L'assegnazione delle proprietà avviene in base all'istanza, quindi è possibile che un oggetto di un tipo di espansione abbia proprietà diverse da un'altra o addirittura le stesse proprietà con tipi diversi. È comunque possibile definire le proprietà in un'espansione, consentendo alle proprietà di comportarsi come qualsiasi altro modello.

Esempio

data/ora importazione

class Song(db.Expando):

title = db.StringProperty()

crazy = Song(title='Crazy come un diamante',

author='Lucy Sky', Publish_date=yesterday, rating=5.0)

hoboken = Song(title='The man from Hoboken',

author=["Anthony", "Lou"], Publish_date=timestamp.timestamp(1977, 5, 3))

crazy.last_minute_note=db.Text("Porta un treno alla stazione").

Possibili utilizzi:

L'uso di un'espansione consiste nel creare un oggetto senza una struttura specifica e in un secondo momento, quando l'applicazione è matura e nello stato corretto, modificarla in un normale oggetto modello e definire le proprietà esplicite.

Ulteriori eccezioni per l'espansione:

Gli attributi protetti (ovvero i cui nomi iniziano con "_") non possono essere utilizzati come proprietà dinamiche. Questi sono nomi riservati per gli attributi temporanei protetti (non persistenti).

Ordine di ricerca:

Quando si cerca di impostare o accedere a un valore dell'attributo, tutte le altre proprietà definite, come metodi e altri valori in __dict__, hanno la precedenza sui valori nel datastore.

1 - Perché non è possibile per il datastore sapere quale tipo di

per archiviare un valore Espandio non definito, impostare una proprietà su Nessuno equivale a eliminarla dall'espansione.

2 - Le variabili persistenti su Espandio non devono iniziare con "_". Queste

considerate "protette" in Python e utilizzate internamente.

3 - Le proprietà dinamiche di Espandio non sono in grado di archiviare elenchi vuoti.

Se provi ad assegnare un elenco vuoto a una proprietà dinamica, verrà attivato ValueValue. Le proprietà statiche su Espandio possono comunque supportare elenchi vuoti, ma come le normali proprietà del modello è limitato l'uso di Nessuno.

proprietà_dinamica()sorgente

Determina quali proprietà sono specifiche per l'istanza dell'entità.

Restituisce

Insieme di nomi che corrispondono solo alle proprietà dinamiche.

class google.appengine.ext.db.FloatProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db.Property

Una proprietà floating.

tipo_dati

alias di floating

source(vuoto)

La proprietà in virgola mobile è vuota.

0,0 non è un valore vuoto.

Restituisce

Vero se il valore è Nessuno, in caso contrario Falso.

convalida(valore)origine

Convalida il numero in virgola mobile.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è un'istanza di " floating".

class google.appengine.ext.db.GeoPtProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono istanze GeoPt.

tipo_dati

alias di GeoPt

class google.appengine.ext.db.GqlQuery(query_string, *args, **kwds)source

Basi: google.appengine.ext.db._BaseQuery

Una classe di query che utilizza la sintassi delle query GQL anziché .filter() e così via.

bind(*args, **kwds)source

associare argomenti (posizione o parola chiave) alla query.

Tieni presente che puoi anche passare gli argomenti direttamente al costruttore della query. Ogni volta che chiami bind() l'insieme di argomenti precedente viene sostituito con il nuovo insieme. Ciò è utile perché l'analisi richiede molto lavoro. Pertanto, se prevedete di utilizzare la stessa query con diversi insiemi di argomenti, dovreste mantenere l'oggetto GqlQuery() e chiamarvi bind() ogni volta.

Parametri
  • *args - Argomenti di posizione utilizzati per associare riferimenti numerici nella query.

  • **kwds – Argomenti basati sul dizionario per i riferimenti denominati.

is_distinct()source
is_keys_only()sorgente
proiezione()origine
run(**kwargs)origine

Iteratore per questa query che gestisce la proprietà della clausola LIMIT.

Se la stringa di query GQL contiene una clausola LIMIT, questa funzione recupera tutti i risultati prima di restituire un iteratore. Altrimenti, i risultati vengono recuperati in batch dall'iteratore.

Parametri

kwargs - Eventuali argomenti delle parole chiave accettati da datastore_query.QueryOptions().

Restituisce

Iteratore di questa query.

class google.appengine.ext.db.IMProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono istanze IM.

tipo_dati

alias di Messaggistica immediata

class google.appengine.ext.db.Index(index_id, type, has_ancestor, proprietà)source

Basi: google.appengine.api.datastore._BaseIndex

Un indice del datastore.

has_ancestor() origine

Indica se si tratta di un indice predecessore, un valore booleano.

id() source

Restituisce l'ID indice, un lungo.

() di tipo

Restituisce il tipo di indice, una stringa. Stringa vuota ('') se non presente.

proprietà()sorgente

Restituisce le proprietà dell'indice. una tupla di (nome indice come stringa, [ASCending|DESCFINE]) tupla.

class google.appengine.ext.db.IntegerProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=None, indicizzate=True)source

Basi: google.appengine.ext.db.Property

Una proprietà intera.

tipo_dati

alias di int

source(vuoto)

La proprietà è un numero intero vuoto.

0 non è un valore vuoto.

Restituisce

Vero se il valore è Nessuno, in caso contrario Falso.

convalida(valore)origine

Convalida la proprietà del numero intero.

Restituisce

Un valore valido.

Aumenta

BadValueError se il valore non è un numero intero o un'istanza lunga.

google.appengine.ext.db.KEY_RANGE_COLLISION = 'Collision'fonte

Indica che le entità con chiavi all'interno dell'intervallo di chiavi specificato esistono già e la scrittura in questo intervallo sovrascriverà queste entità. Si applicano anche le implicazioni di KEY_RANGE_COLLISION. Se le sovrascritture esistenti in questo intervallo sono accettabili, puoi utilizzare l'intervallo specificato in sicurezza.

L'allocatore di ID automatico del datastore non assegnerà mai una chiave a una nuova entità che sovrascriverà un'entità esistente, quindi le entità scritte dall'utente in questo intervallo non verranno mai sovrascritte da un'entità con una chiave assegnata automaticamente.

google.appengine.ext.db.KEY_RANGE_CONTENTION = 'Contention'fonte

Indica che l'intervallo di chiavi specificato è vuoto, ma l'allocatore di ID automatico del datastore può assegnare nuove chiavi di entità in questo intervallo. Tuttavia, è sicuro assegnare manualmente le chiavi in questo intervallo se una delle seguenti condizioni è vera:

  • Nessun'altra richiesta inserirà entità con lo stesso tipo e padre dell'intervallo di chiavi specificato fino a quando tutte le entità con chiavi assegnate manualmente da questo intervallo non saranno state scritte.

  • Sovrascrivere le entità scritte da altre richieste dello stesso tipo e padre dell'intervallo di chiavi specificato è accettabile.

L'allocatore automatico dell'ID del datastore non assegnerà una chiave a una nuova entità che sovrascriverà un'entità esistente, quindi una volta che l'intervallo è completato non ci sarà più alcuna concisione.

google.appengine.ext.db.KEY_RANGE_EMPTY = 'Empty'source

Indica che l'intervallo di chiavi specificato è vuoto e l'allocatore di ID automatico del datastore non assegnerà le chiavi in questo intervallo alle nuove entità.

exception google.appengine.ext.db.KindErrorsource

Basi: google.appengine.api.datastore_errors.BadValueError

Aumentato quando un'entità viene utilizzata con il modello errato.

class google.appengine.ext.db.LinkProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono Istanze link.

tipo_dati

alias di link

convalida(valore)origine
class google.appengine.ext.db.ListProperty(item_type, verbose_name=None, default=None, write_empty_list=None, **kwds)source

Basi: google.appengine.ext.db.Property

Una proprietà che memorizza un elenco di elementi,

Questa è una proprietà parametrizzata; il parametro deve essere un tipo di dati non in elenco valido e tutti gli elementi devono essere conformi a questo tipo.

tipo_dati

alias di elenco

valore_predefinito()origine

Valore predefinito per l'elenco.

Poiché la proprietà fornita a "default" è un valore statico, tale valore deve essere copiato in modo superficiale per impedire che tutti i campi con valori predefiniti condividano la stessa istanza.

Restituisce

Copia del valore predefinito.

source(vuoto)

La proprietà elenco è vuota.

[] non è un valore vuoto.

Restituisce

Vero se il valore è Nessuno, in caso contrario falso.

get_value_for_datastore(model_instance)origine

Ottieni valore dalla proprietà da inviare al datastore.

Restituisce

l'elenco convalidato appropriato per salvare nel datastore.

make_value_from_datastore(value)origine

Rappresentazione nativa di questa proprietà.

Se si tratta di un elenco che contiene timestamp.date o timestamp.time, viene convertito dall'entità recuperato dall'entità in timestamp.date o timestamp.time.

Per informazioni dettagliate, consulta la documentazione sul metodo della classe base.

make_value_from_datastore_index_value(index_value)origine
convalida(valore)origine

Convalida elenco.

Restituisce

Un valore valido.

Aumenta
  • BadValueError se la proprietà non è un elenco i cui elementi sono istanze di

  • il valore di item_type assegnato al costruttore.

valid_list_contents(valore)origine

Convalida che tutti gli elementi nell'elenco sono del tipo corretto.

Restituisce

L'elenco convalidato.

Aumenta
  • BadValueError se l'elenco contiene elementi che non sono istanze di

  • item_type assegnato al costruttore.

class google.appengine.ext.db.Model(parent=None, key_name=None, _app=None, _from_entity=False, **kwds)source

Basi: oggetto

Il modello è la superclasse di tutte le entità dell'oggetto nel datastore.

Il modello di programmazione prevede di dichiarare le sottoclassi Python della classe Model, dichiarando le proprietà del datastore come membri di quella classe. Pertanto, se vuoi pubblicare una storia con titolo, corpo e data di creazione, procedi come segue:

class Story(db.Modello):

title = db.StringProperty() body = db.TextProperty() creato = db.DateTimeProperty(auto_now_add=True)

Un'istanza di modello può avere un unico elemento padre. Le istanze modello senza alcun elemento padre sono entità radice. È possibile eseguire query sulle istanze in modo efficiente dal proprio genitore condiviso. Tutti i discendenti di una singola istanza radice si comportano anche come un gruppo di transazioni. Ciò significa che quando lavori per un membro del gruppo all'interno di una transazione, tutti i discendenti di quella radice entrano nella transazione. Tutte le operazioni all'interno di una transazione su questo gruppo sono ACID.

classmethod all(**kwds)origine

Restituisce una query su tutte le istanze di questo modello dal datastore.

Restituisce

Query che recupererà tutte le istanze dalla raccolta di entità.

delete(**kwargs)origine

Elimina questa entità dal datastore.

Parametri

config – datastore_rpc.Configuration da utilizzare per questa richiesta.

Aumenta

TransactionFailedError se non è stato possibile eseguire il commit dei dati.

proprietà_dinamica()sorgente

Restituisce un elenco di tutte le proprietà dinamiche definite ad esempio.

classmethod entity_type()source

Presto sarà rimosso l'alias.

classmethod fields()source

L'alias delle proprietà verrà presto rimosso.

classmethod from_entity(entity)source

Converte la rappresentazione dell'entità di questo modello in un'istanza.

Converte l'istanza datastore.Entity in un'istanza cls.

Parametri

entità: entità caricata direttamente dal datastore.

Aumenta

KindError quando cls non è un modello corretto per l'entità.

classmethod get(keys, **kwargs)source

Recupera l'istanza dal datastore di un tipo di modello specifico utilizzando la chiave.

Supportiamo oggetti chiave e chiavi stringa (li convertiamo automaticamente in oggetti chiave).

Utile per garantire che tipi di istanze specifici vengano recuperati dal datastore. Inoltre, il codice sorgente indica chiaramente che tipo di oggetto viene recuperato. Esempio:

storia = Storia.get(chiave_storia)

Parametri
  • Chiavi: chiave all'interno della raccolta di entità del datastore da trovare oppure chiave della stringa oppure elenco di chiavi o chiavi della stringa.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta.

Restituisce

un'istanza di modello associata alla chiave per la classe fornita se esiste nel datastore, altrimenti Nessuno. Se è stato fornito un elenco di chiavi: elenco in cui elenco[i] è l'istanza del modello per le chiavi[i] o Nessuno se non esiste alcuna istanza.

Tipo restituito

Se è stata fornita una singola chiave

Aumenta
  • KindError se uno degli oggetti recuperati non è istanze di

  • Tipo associato alla chiamata a "get".

classmethod get_by_id(ids, parent=None, **kwargs)source

Recupero istanza della classe Model per ID.

Parametri
  • key_names - Un singolo ID o un elenco di ID.

  • parent: elemento padre delle istanze da ottenere. Può essere un modello o una chiave.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta.

classmethod get_by_key_name(key_names, parent=None, **kwargs)source

Recupera l'istanza della classe Model in base al nome della chiave.

Parametri
  • key_names - Un singolo nome chiave o un elenco di nomi di chiavi.

  • parent: elemento padre delle istanze da ottenere. Può essere un modello o una chiave.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta.

classmethod get_or_insert(key_name, **kwds)source

Recupera o crea un'istanza di classe Model.

Il comportamento è molto simile a quello del metodo Python default setdefault(), in cui proviamo prima a recuperare un'istanza modello con il nome chiave e l'elemento padre specificati. Se non è presente, creiamo una nuova istanza (utilizzando *kwds fornito) e la inseriamo con il nome della chiave fornito.

Le chiamate successive a questo metodo con lo stesso key_name e padre avranno sempre la stessa entità (anche se non la stessa istanza effettiva dell'oggetto), a prescindere dal valore *kwds fornito. Se l'entità specificata è stata in qualche modo eliminata separatamente, la chiamata successiva creerà una nuova entità e la restituirà.

Se viene fornito l'argomento parola chiave "principale", deve essere un'istanza di modello. Verrà utilizzato come padre della nuova istanza di questa classe modello se ne viene creata una.

Questo metodo è particolarmente utile per avere una sola entità univoca per un identificatore specifico. L'inserimento/il recupero viene eseguito a livello di transazione, il che garantisce l'unicità.

Esempio di utilizzo:

class WikiTopic(db.Model):

Creation_date = db.DatetimeProperty(auto_now_add=True) body = db.TextProperty(required=True)

# La prima volta che creiamo il nuovo argomento. wiki_word = 'CommonIdioms' argomento = WikiTopic.get_or_insert(wiki_word,

body='Questo argomento è completamente nuovo!')

scoperta di topic.key().name() == 'CommonIdioms' afferma topic.body == 'Questo argomento è completamente nuovo'

# La seconda volta andrà a recuperare l'entità. sovrascrivere_argomento = WikiTopic.get_or_insert(wiki_word,

body='Un messaggio totalmente diverso!')

scoperta di topic.key().name() == 'CommonIdioms' afferma topic.body == 'Questo argomento è completamente nuovo'

Parametri
  • key_name – Nome della chiave per recuperare o creare.

  • **kwds – Argomenti delle parole chiave da passare al costruttore della classe del modello se non esiste già un'istanza per il nome della chiave specificata. Se esiste già un'istanza con il key_name e l'elemento padre forniti, il resto di questi argomenti verrà eliminato.

Restituisce

Istanza della classe Model esistente con la chiave_nome e l'elemento padre specificati o una nuova appena creata.

Aumenta
  • TransactionFailedError se non è stato possibile assegnare l'istanza del modello specificata

  • il recupero o la creazione di transazioni (a causa di un'elevata contenzione ecc.).

classmethod gql(query_string, *args, **kwds)source

Restituisce una query utilizzando la stringa di query GQL.

Per ulteriori informazioni su GQL, consulta appengine/ext/gql.

Parametri
  • query_string: stringa query GQL formattata correttamente con la parte "SELECT * FROM <entity&gt";" omessa

  • *args - Gli argomenti posizionali utilizzati per associare riferimenti numerici nella query.

  • **kwds – Argomenti basati sul dizionario (per i parametri denominati).

has_key() source

Determina se questa istanza del modello ha una chiave completa.

Se non utilizzi una chiave completamente assegnata autonomamente, gli ID non vengono assegnati finché i dati non vengono salvati in Datastore, ma le istanze con un nome chiave hanno sempre una chiave completa.

Restituisce

Vero se l'oggetto è stato mantenuto al datastore o ha una chiave o ha un key_name, altrimenti False.

instance_properties() sorgente

Alias per dyanmic_properties.

is_save()origine

Determina se l'entità è presente in modo permanente nel datastore.

Le nuove istanze di Model non vengono salvate nei dati. Gli oggetti salvati o caricati da Datastore avranno uno stato True salvato.

Restituisce

Vero se l'oggetto è stato mantenuto al datastore, altrimenti è falso.

chiave()source

Chiave univoca per questa entità.

Questa proprietà è disponibile solo se questa entità è già archiviata nel datastore o se ha una chiave completa, quindi è disponibile se questa entità è stata recuperata da una query o dopo che il metodo put() viene chiamato la prima volta per le nuove entità o se viene fornita una chiave completa al momento della creazione.

Restituisce

Chiave Datastore dell'entità permanente.

Aumenta

NotSavedError quando l'entità non è permanente.

classmethod kind()source.

Restituisce il tipo di datastore che utilizziamo per questo modello.

Per il momento utilizziamo solo il nome del modello, ignorando potenziali collisioni.

padre()source

Recupera l'istanza padre dell'istanza del modello.

Restituisce

Principale dell'entità contenuta o principale fornita nel costruttore, Nessuna se l'istanza non ha padre.

parent_key() sorgente

Prendi la chiave del genitore.

Questo metodo è utile per evitare un potenziale recupero dal datastore, ma per recuperare informazioni sulle istanze padre.

Restituisce

Chiave padre dell'entità: nessuna, se non c'è alcuna chiave principale.

classmethod properties()source

Restituisce un dizionario di tutte le proprietà definite per questo modello.

Put(**kwargs)fonte

Scrive questa istanza modello nel datastore.

Se questa istanza è nuova, aggiungiamo un'entità al datastore. Altrimenti, aggiorneremo questa istanza e la chiave rimarrà la stessa.

Parametri

config – datastore_rpc.Configuration da utilizzare per questa richiesta.

Restituisce

La chiave dell'istanza (la chiave esistente o una nuova chiave).

Aumenta

TransactionFailedError se non è stato possibile eseguire il commit dei dati.

salva(**kwargs)sorgente

Scrive questa istanza modello nel datastore.

Se questa istanza è nuova, aggiungiamo un'entità al datastore. Altrimenti, aggiorneremo questa istanza e la chiave rimarrà la stessa.

Parametri

config – datastore_rpc.Configuration da utilizzare per questa richiesta.

Restituisce

La chiave dell'istanza (la chiave esistente o una nuova chiave).

Aumenta

TransactionFailedError se non è stato possibile eseguire il commit dei dati.

to_xml(_entity_class=google.appengine.api.datastore.Entity)origine

Genera una rappresentazione XML di questa istanza del modello.

Le proprietà atom e gd:namespace vengono convertite in XML in base ai rispettivi schemi. Per ulteriori informazioni, vedi:

http://www.atomenabled.org/developers/syndication/ https://developers.google.com/gdata/docs/1.0/elements

exception google.appengine.ext.db.NotSavedErrororigine

Basi: google.appengine.api.datastore_errors.Error

Aumentato quando viene eseguita un'azione dell'oggetto salvato su un oggetto non salvato.

class google.appengine.ext.db.PhoneNumberProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono istanze PhoneNumber.

tipo_dati

alias di numero di telefono

class google.appengine.ext.db.postalAddressProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty

Una proprietà i cui valori sono istanze postalAddress.

tipo_dati

alias di postalAddress

class google.appengine.ext.db.PropertiedClass(nome, basi, dct, map_kind=True)source

Basi: tipo

Meta-classe per l'inizializzazione delle proprietà delle classi Model.

Utilizzato per inizializzare le proprietà definite nel contesto di un modello. Utilizzando una meta-classe, gran parte della configurazione di un descrittore della proprietà diventa implicita. Utilizzando questa meta-class, i descrittori che appartengono al modello di classe ricevono una notifica relativa alla classe a cui appartengono e all'attributo a cui sono associati e possono eseguire l'inizializzazione appropriata tramite __property_config__.

Non sono consentite proprietà duplicate.

class google.appengine.ext.db.Property(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: oggetto

Una proprietà è un attributo di un modello.

Definisce il tipo di attributo, che determina come viene archiviato nel datastore e come vengono convalidati i valori della proprietà. Tipi di proprietà diversi supportano opzioni diverse che modificano le regole di convalida, i valori predefiniti e così via. L'esempio più semplice di una proprietà è una StringProperty:

class Story(db.Modello):

title = db.StringProperty()

creazione_contatore = 41
tipo_dati

alias di str

datastore_type()origine

È stato ritirato il metodo di accesso compatibile con le versioni precedenti per self.data_type.

valore_predefinito()origine

Valore predefinito per i valori non assegnati.

Restituisce

Valore predefinito fornito da __init__(predefinito).

source(vuoto)

Determina se il valore è vuoto nel contesto di questa proprietà.

Per la maggior parte dei tipi questo equivale a "non valore", ma per tipi come bool il test è più sottile, quindi le sottoclassi possono sostituire questo metodo, se necessario.

Parametri

value - Valore da convalidare in base a questa proprietà.

Restituisce

True se questo valore è considerato vuoto nel contesto di questo tipo di proprietà, altrimenti False.

get_updated_value_for_datastore(model_instance)origine

Determina il nuovo valore per la proprietà aggiornata automaticamente.

Alcune proprietà (ad esempio, DateTimeProperty, UserProperty) aggiornano facoltativamente il valore su ogni Put(). Questa chiamata deve restituire il nuovo valore desiderato per queste proprietà. Per tutte le altre proprietà, questa chiamata deve restituire AUTO_UPDATE_UNCHANGED.

Parametri

model_instance - Istanza per cui ottenere un nuovo valore.

Restituisce

Rappresentazione Datastore del nuovo valore del modello in un formato appropriato per l'archiviazione nel datastore o AUTO_UPDATE_UNCHANGED.

get_value_for_datastore(model_instance)origine

Rappresentazione Datastore di questa proprietà.

Cerca questa proprietà nell'istanza del modello specificata e restituisce la rappresentazione datastore corretta del valore che può essere archiviato in un'entità datastore. Soprattutto, recupera il valore della chiave del datastore per le proprietà di riferimento.

Alcune proprietà (ad esempio, DateTimeProperty, UserProperty) aggiornano facoltativamente il valore su ogni Put(). Questa chiamata deve restituire il valore corrente per queste proprietà (get_updated_value_for_datastore restituisce il nuovo valore).

Parametri

model_instance: istanza da cui recuperare il valore del datastore.

Restituisce

Rappresentazione Datastore del valore del modello in un formato appropriato per l'archiviazione nel datastore.

make_value_from_datastore(value)origine

Rappresentazione nativa di questa proprietà.

Dato un valore recuperato da un'entità datastore, restituisci un valore, possibilmente convertito, da archiviare nell'istanza del modello. Di solito restituisce il valore invariato, ma una classe di proprietà può sostituire questo valore quando utilizza un tipo di dati diverso nell'istanza del modello rispetto all'entità.

Questa API non è abbastanza simmetrica con get_value_for_datastore(), perché l'istanza di modello in cui archiviare il valore convertito potrebbe non esistere ancora: potremmo raccogliere dati da trasmettere a un costruttore di modelli.

Parametri

value - valore recuperato dall'entità datastore.

Restituisce

Il valore convertito per l'uso come attributo di istanza del modello.

make_value_from_datastore_index_value(index_value)origine
convalida(valore)origine

Dichiarare che il valore fornito è compatibile con questa proprietà.

Parametri

value - Valore da convalidare in base a questa proprietà.

Restituisce

Un valore valido, ovvero l'input invariato o adattato al tipo richiesto.

Aumenta
  • BadValueError se il valore non è appropriato per questa situazione

  • in qualsiasi modo.

exception google.appengine.ext.db.PropertyErrororigine

Basi: google.appengine.api.datastore_errors.Error

Aumentato quando viene fatto riferimento a una proprietà inesistente.

class google.appengine.ext.db.Query(model_class=None, key_only=False, cursor=None, namespace=Nessuno, _app=None, distinto=False, proiezione=None)source

Basi: google.appengine.ext.db._BaseQuery

Un'istanza di query esegue query sulle istanze di modelli.

Per creare una query con una classe del modello, ad esempio:

class Story(db.Modello):

title = db.StringProperty() date = db.DateTimeProperty()

query = Query(storia)

Puoi modificare una query con filtri e ordini come i seguenti:

query.filter('title =', 'Foo') query.order('-date') query.ancestor(key_or_model_instance)

Ogni query può restituire un iteratore, quindi puoi accedere ai risultati di una query eseguendo l'iterazione:

per la storia nella query:

stampa storia.titolo

Per comodità, tutti i metodi di filtro e ordinamento restituiscono un elemento "self", quindi il modo più semplice per utilizzare l'interfaccia query è inserire tutti i filtri e gli ordini nell'elemento pubblicitario dell'iteratore in questo modo:

per la storia in Query(story).filter("title =", "Foo").order('-date'):

stampa storia.titolo

predecessore(antenato)origine

Imposta un predecessore per questa query.

Questo limita la query in modo che restituisca solo i risultati che provengono da una data istanza del modello. In altre parole, tutti i risultati avranno l'antenato come padre oppure il genitore principale e così via. Anche l'antenato è un possibile risultato!

Parametri

predecessore: modello o chiave (già salvati)

Restituisce

Supporto per il concatenamento dei metodi.

Aumenta
  • TypeError se l'argomento non è una chiave o un modello; NotSavedError

  • In caso affermativo, ma non è stato ancora salvato.

filter(property_operator, value)sorgente

Aggiungi il filtro alla query.

Parametri
  • property_operator – stringa con la proprietà e l'operatore in base a cui filtrare.

  • value: il valore del filtro.

Restituisce

Supporto per il concatenamento dei metodi.

Aumenta

PropertyError se viene specificata una proprietà non valida.

is_distinct()source
is_keys_only()sorgente
ordine(proprietà) sorgente

Imposta l'ordine del risultato della query.

Per utilizzare l'ordine decrescente, anteponi "-" (meno) al nome della proprietà, ad esempio "-date" anziché "date".

Parametri

proprietà – Proprietà su cui ordinare.

Restituisce

Supporto per il concatenamento dei metodi.

Aumenta

PropertyError se viene specificata una proprietà non valida.

proiezione()origine
class google.appengine.ext.db.RatingProperty(verbose_name=None, name=None, default=None, required=False, Validation=None, Choices=Nessuno, indicizzato=True)source

Basi: google.appengine.ext.db._CoercingProperty, google.appengine.ext.db.IntegerProperty

Una proprietà i cui valori sono Istanze di valutazione.

tipo_dati

alias di valutazione

google.appengine.ext.db.Riferimento

alias di RiferimentiProperty

class google.appengine.ext.db.referenceProperty(reference_class=None, verbose_name=None, collection_name=None, **attrs)source

Basi: google.appengine.ext.db.Property

Una proprietà che rappresenta un riferimento "one-to-one" a un altro modello.

Ad esempio, una proprietà di riferimento nel modello A che fa riferimento al modello B forma una relazione "one-to-one" da A a B: ogni istanza di A si riferisce a una singola istanza B e ogni istanza B può avere più istanze A a cui fare riferimento.

get_value_for_datastore(model_instance)origine

Recupera la chiave di riferimento anziché il riferimento stesso.

make_value_from_datastore_index_value(index_value)origine
convalida(valore)origine

Convalida riferimento.

Restituisce

Un valore valido.

Aumenta

BadValueError per i seguenti motivi – - Il valore non è stato salvato. - Oggetto del tipo di modello non corretto per riferimento.

exception google.appengine.ext.db.PrenotaWordErrorsource

Basi: google.appengine.api.datastore_errors.Error

Aumentato quando una proprietà viene definita per una parola riservata.

google.appengine.ext.db.Selfreference(verbose_name=None, collection_name=None, **attrs)source

Creare un riferimento personale.

Funzione per dichiarare una proprietà autoreferenziale su un modello.

Esempio
class HtmlNode(db.Model):

principale = db.SelfreferenceProperty("Genitore", "bambino")

Parametri
  • verbose_name: nome della proprietà facile da usare.

  • collection_name – Nome della raccolta sul modello.

Rialzi

ConfigurationError se riferimento_classe fornito come parametro.

google.appengine.ext.db.SelfreferenceProperty(verbose_name=None, collection_name=None, **attrs)source

Creare un riferimento personale.

Funzione per dichiarare una proprietà autoreferenziale su un modello.

Esempio
class HtmlNode(db.Model):

principale = db.SelfreferenceProperty("Genitore", "bambino")

Parametri
  • verbose_name: nome della proprietà facile da usare.

  • collection_name – Nome della raccolta sul modello.

Rialzi

ConfigurationError se riferimento_classe fornito come parametro.

class google.appengine.ext.db.StringListProperty(verbose_name=None, default=None, write_empty_list=None, **kwds)source

Basi: google.appengine.ext.db.ListProperty

Una proprietà in cui è presente un elenco di stringhe.

Un'abbreviazione del tipo più comune di ListProperty.

class google.appengine.ext.db.StringProperty(verbose_name=None, multiline=False, **kwds)source

Basi: google.appengine.ext.db.Property

Una proprietà di testo, che può essere su più righe o su una sola riga.

MAX_LENGTH = 1500
tipo_dati

alias di basestring

convalida(valore)origine

Convalida la proprietà della stringa.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è su più righe, ma il valore lo è.

class google.appengine.ext.db.TextProperty(*args, **kwds)source

Basi: google.appengine.ext.db.UnindexedProperty

Una stringa che può superare i 1500 byte.

tipo_dati

alias di testo

class google.appengine.ext.db.TimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)source

Basi: google.appengine.ext.db.DateTimeProperty

Una proprietà di tempo, che memorizza un orario senza una data.

tipo_dati

alias di tempo

source(vuoto)

La proprietà time è vuota.

"0:0" (mezzanotte) non è un valore vuoto.

Restituisce

Vero se il valore è Nessuno, in caso contrario Falso.

get_updated_value_for_datastore(model_instance)origine

Ottieni un nuovo valore per la proprietà da inviare al datastore.

Restituisce

now() in modo appropriato per l'istanza temporale nel caso dispari in cui auto_now è impostato su True, altrimenti AUTO_UPDATE_UNCHANGED.

get_value_for_datastore(model_instance)origine

Ottieni valore dalla proprietà da inviare al datastore.

Recuperiamo un'attributo timestamp.time dall'istanza del modello e restituiamo un'istanza x.timestamp con la data impostata su 1/1/1970.

Per informazioni dettagliate, consulta la documentazione sul metodo della classe base.

make_value_from_datastore(value)origine

Rappresentazione nativa di questa proprietà.

Riceviamo un valore timestamp.timestamp recuperato dall'entità e restituiamo un'istanza timestamp.date che rappresenta la sua parte temporale.

Per informazioni dettagliate, consulta la documentazione sul metodo della classe base.

statica now()source

Visualizza ora come valore di data e ora.

Restituisce

solo "tempo" di "ora".

google.appengine.ext.db.URLProperty

alias di LinkProperty

class google.appengine.ext.db.UnindexedProperty(*args, **kwds)source

Basi: google.appengine.ext.db.Property

Una proprietà che non viene indicizzata da indici integrati o compositi.

TextProperty e BlobProperty derivano da questa classe.

convalida(valore)origine

Convalida proprietà.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è un'istanza di data_type.

class google.appengine.ext.db.UserProperty(verbose_name=None, name=None, required=False, Validation=None, Choices=None, auto_current_user=False, auto_current_user_add=False, indicizzato=True)source

Basi: google.appengine.ext.db.Property

Una proprietà utente.

tipo_dati

alias di utente

valore_predefinito()origine

Valore predefinito per l'utente.

Restituisce

Valore di users.get_current_user() se è impostato auto_current_user o auto_current_user_add; altrimenti Nessuno. Tuttavia, non è l'implementazione predefinita, poiché non supportiamo l'argomento "default" della parola chiave.

get_updated_value_for_datastore(model_instance)origine

Ottieni un nuovo valore per la proprietà da inviare al datastore.

Restituisce

Valore di users.get_current_user() se auto_current_user è impostato; altrimenti AUTO_UPDATE_UNCHANGED.

convalida(valore)origine

Convalida utente.

Restituisce

Un valore valido.

Aumenta

BadValueError se la proprietà non è un'istanza di "User".

google.appengine.ext.db.allocal_id_range(model, start, end, **kwargs)origine

Alloca un intervallo di ID con endpoint specifici.

Una volta assegnati, questi ID possono essere forniti manualmente alle nuove entità create.

Dato che l'allocatore automatico dell'ID del datastore non assegnerà mai una chiave a una nuova entità che comporterà la sovrascrittura di un'entità esistente, le entità scritte nell'intervallo di chiavi specificato non verranno mai sovrascritte. Tuttavia, la scrittura di entità con chiavi assegnate manualmente in questo intervallo può sovrascrivere entità esistenti (o nuove entità scritte da una richiesta separata) a seconda dello stato dell'intervallo di chiavi restituito.

Questo metodo deve essere utilizzato solo se hai un intervallo ID numerico esistente che vuoi prenotare, ad esempio caricamento collettivo di entità che hanno già ID. Se non ti interessano gli ID che ricevi, utilizza il valore deploy_id.

Parametri
  • model - Istanza modello, chiave o stringa da utilizzare come modello specificando la sequenza di ID in cui allocare gli ID. Gli ID assegnati devono essere utilizzati solo in entità con la stessa entità (se presente) e di tipo di questa chiave.

  • start – primo ID dell'intervallo da includere, inclusi.

  • end: ultimo ID dell'intervallo da allocare, compreso.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta.

Restituisce

Uno di (KEY_RANGE_EMPTY, KEY_RANGE_CONTENTION, KEY_RANGE_COLLISION). Se non lo è KEY_RANGE_EMPTY, significa che potrebbe esserci un problema relativo all'uso dell'intervallo di chiavi allocato.

google.appengine.ext.db.allocate_ids(modello, dimensioni, **kwargs)origine

Alloca un intervallo di ID delle dimensioni per model_key definite dal modello.

Alloca un intervallo di ID nel datastore in modo che tali ID non vengano assegnati automaticamente alle nuove entità. Puoi allocare solo gli ID delle chiavi del modello dalla tua app. In caso di errore, viene visualizzata una sottoclasse di datastore_errors.Error.

Parametri
  • model - Istanza modello, chiave o stringa da utilizzare come modello specificando la sequenza di ID in cui allocare gli ID. Gli ID restituiti devono essere utilizzati solo in entità con lo stesso elemento padre (se presente) e di tipo come questa chiave.

  • size - Numero di ID da allocare.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta.

Restituisce

(inizio, fine) dell'intervallo allocato, inclusi.

google.appengine.ext.db.allocate_ids_async(modello, dimensioni, **kwargs)origine

Alloca in modo asincrono un intervallo di ID.

Identico all'allocazione_id() restituisce un oggetto asincrono. Richiama get_result() sul valore restituito per bloccare la chiamata e restituire il risultato.

google.appengine.ext.db.check_reservation_word(attr_name)source

Imposta un'eccezione se il nome dell'attributo è una parola riservata.

Parametri

attr_name - Nome per verificare se è una parola riservata.

Aumenta

ConfidentialWordError quando attr_name è una parola riservata.

google.appengine.ext.db.class_for_kind(kind)source (Fonte)

Restituisce la classe base responsabile dell'implementazione del tipo.

Necessario per recuperare la classe responsabile dell'implementazione del tipo fornito.

Parametri

type: stringa del tipo di entità.

Restituisce

Implementazione dei corsi per tipo.

Aumenta

KindError quando non è disponibile alcun tipo di implementazione.

google.appengine.ext.db.create_rpc(deadline=None, callback=None, read_policy=0)source

Crea un RPC da utilizzare per la configurazione delle chiamate del datastore.

NOTA: questa funzione esiste per la compatibilità con le versioni precedenti. Utilizza create_config(). NOTA: la seconda utilizza 'on_completion', che è una funzione che usa un argomento, mentre create_rpc utilizza 'callback', che è una funzione senza argomenti.

Parametri
  • scadenza: numero in virgola mobile, scadenza per le chiamate in secondi.

  • callback – richiamabile, un callback attivato quando viene completato questo rpc, accetta un argomento: il rpc restituito.

  • read_policy - flag impostato su EVENTUAL_CONSISTENCY per abilitare letture infine coerenti

Restituisce

Un'istanza datastore.DatastoreRPC.

google.appengine.ext.db.delete(models, **kwargs)origine

Elimina una o più istanze del modello.

Parametri
  • modelle: istanza del modello, chiave, stringa di chiave o codice iterabile.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta, deve essere specificato come argomento della parola chiave.

Rialzi

TransactionFailedError se non è stato possibile eseguire il commit dei dati.

google.appengine.ext.db.delete_async(modelli, **kwargs)origine

Versione asincrona di una o più istanze del modello.

Identico a db.delete(), tranne che restituisce un oggetto asincrono. Richiama get_result() sul valore restituito per bloccare la chiamata.

google.appengine.ext.db.get(keys, **kwargs)fonte

Recupera dall'archivio dati l'istanza modello specifica con la chiave specificata.

Supportiamo oggetti chiave e chiavi stringa (li convertiamo automaticamente in oggetti chiave).

Parametri
  • Chiavi: chiave all'interno della raccolta di entità del datastore da trovare oppure chiave della stringa oppure elenco di chiavi o chiavi della stringa.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta, deve essere specificato come argomento della parola chiave.

  • Restituisce – Se è stata fornita una singola chiave: un'istanza di modello associata alla chiave se esiste nel datastore, altrimenti Nessuno. Se è stato fornito un elenco di chiavi: elenco in cui elenco[i] è l'istanza del modello per le chiavi[i] o Nessuno se non esiste alcuna istanza.

google.appengine.ext.db.get_async(keys, **kwargs)fonte

Recupera in modo asincrono le istanze modello specificate dal datastore.

Identico a db.get(), tranne che restituisce un oggetto asincrono. Richiama get_result() sul valore restituito per bloccare la chiamata e ottenere i risultati.

google.appengine.ext.db.get_indexes(**kwargs)fonte

Recupera gli indici dell'applicazione e i relativi stati.

Parametri

config – datastore_rpc.Configuration da utilizzare per questa richiesta, deve essere specificato come argomento della parola chiave.

Restituisce

Un elenco di tupla (indice, indice.[BUILDING|SERVING|DELETING|ERROR]). Un indice può essere nei seguenti stati:

Index.BUILDING: l'indice è in fase di creazione e non è possibile pubblicare query Index.SERVING: l'indice è pronto per gestire le query Index.DELETING: l'indice è in fase di eliminazione Index.ERROR: l'indice ha riscontrato un errore nello stato COSTRUZIONE

google.appengine.ext.db.get_indexes_async(**kwargs)fonte

Recupera in modo asincrono gli indici dell'applicazione e i relativi stati.

Identico a get_indexes(), tranne per il fatto che restituisce un oggetto asincrono. Richiama get_result() sul valore restituito per bloccare la chiamata e ottenere i risultati.

google.appengine.ext.db.model_from_protobuf(pb, _entity_class=google.appengine.api.datastore.Entity)source

Decodifica un'istanza modello da un buffer di protocollo.

Parametri

pb: la rappresentazione del buffer di protocollo dell'istanza del modello. Può essere una entità_pb.EntityProto o la codifica str di un entità_bp.EntityProto

Restituisce

Istanza modello risultante dalla decodifica del buffer di protocollo

google.appengine.ext.db.model_is_projection(model_instance)origine

Restituisce true se l'istanza db.Model fornita contiene solo una proiezione dell'intera entità.

google.appengine.ext.db.model_to_protobuf(model_instance, _entity_class=google.appengine.api.datastore.Entity)source

Codifica un'istanza modello come buffer di protocollo.

Parametri

model_instance – Istanza modello da codificare.

Restituisce

Rappresentazione entità_pb.EntityProto dell'istanza modello

google.appengine.ext.db.put(models, **kwargs)fonte

Archiviare una o più istanze del modello.

Parametri
  • modelle: istanza di modello o elenco di istanze di modello.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta, deve essere specificato come argomento della parola chiave.

Restituisce

Una chiave se i modelli sono un'istanza, un elenco di chiavi nello stesso ordine dei modelli se i modelli sono un elenco.

Aumenta

TransactionFailedError se non è stato possibile eseguire il commit dei dati.

google.appengine.ext.db.put_async(models, **kwargs)fonte

Archiviare in modo asincrono una o più istanze del modello.

Identico a db.put(), tranne per il fatto che restituisce un oggetto asincrono. Richiama get_result() sul valore restituito per bloccare la chiamata e ottenere i risultati.

google.appengine.ext.db.query_descendants(model_instance)origine

Restituisce una query per tutti i discendenti di un'istanza modello.

Parametri

model_instance - Istanza modello per trovare i discendenti di.

Restituisce

Query che recupererà tutte le entità con l'istanza di modello specificata

come predecessore. A differenza delle normali query degli antenati, ciò non include l'antenato stesso.

google.appengine.ext.db.save(models, **kwargs)fonte

Archiviare una o più istanze del modello.

Parametri
  • modelle: istanza di modello o elenco di istanze di modello.

  • config – datastore_rpc.Configuration da utilizzare per questa richiesta, deve essere specificato come argomento della parola chiave.

Restituisce

Una chiave se i modelli sono un'istanza, un elenco di chiavi nello stesso ordine dei modelli se i modelli sono un elenco.

Aumenta

TransactionFailedError se non è stato possibile eseguire il commit dei dati.

google.appengine.ext.db.to_dict(modello_istanza, dizionario=Nessuno)origine

Converti il modello in dizionario.

Parametri
  • model_instance - Istanza modello per cui creare il dizionario.

  • dizionario: ditta l'istanza o è compatibile per ricevere valori del modello. I valori originali del dizionario non sono stati cancellati. Analogamente all'utilizzo di dizionario.update. Se il dizionario è Nessuno, viene creata e restituita una nuova istanza di dizionario.

Restituisce

Nuovo dizionario appropriato con valori di istanze modello se l'entità è Nessuno, altro.