Articles of app engine ndb

ndb y consistencia: ¿Por qué ocurre este comportamiento en una consulta sin un padre?

Estoy trabajando un poco con Python y ndb y no puedo entender por qué. Voy a publicar los casos y el código de arriba: modelos.py class Reference(ndb.Model): kind = ndb.StringProperty(required=True) created_at = ndb.DateTimeProperty(auto_now_add=True) some_id = ndb.StringProperty(indexed=True) data = ndb.JsonProperty(default={}) Esas pruebas se ejecutan en la consola interactiva y la opción – high_replication para dev_appserver.py: Prueba […]

El motor de aplicaciones NDB: cómo acceder a verbose_name de una propiedad

Supongo que tengo este código: class A(ndb.Model): prop = ndb.StringProperty(verbose_name=”Something”) m = A() m.prop = “a string value” Ahora, por supuesto, si imprimo m.prop, emitirá “un valor de cadena”, mientras que en realidad es una instancia de StringProperty. Por lo tanto, no se puede acceder a verbose_name de la forma “normal”, es decir, m.prop._verbose_name . […]

¿Qué tan eficiente es Google App Engine ndb.delete_multi ()?

Estoy trabajando en algo para borrar mi base de datos de ~ 10,000 entidades, y mi plan es ponerlo en una tarea que elimine 200 a la vez usando ndb.delete_multi() y luego se vuelva a llamar de forma recursiva hasta que no quede ninguna entidad. Por ahora, todavía no tengo la recursión, así que podría […]

¿Cómo puedo saber si ndb.Model.get_or_insert creó una nueva entidad o tiene una existente?

Para la siguiente función (rota), quiero devolver True si la entidad fue creada o actualizada, y False caso contrario. El problema es que no sé si get_or_insert() obtuvo una entidad existente o insertó una. ¿Hay una manera fácil de determinar esto? class MyModel(ndb.Model): def create_or_update(key, data): “””Returns True if entity was created or updated, False […]

Siguiendo las referencias de tipos desconocidos en NDB

Estoy en el proceso de escribir mi primer servicio web RESTful sobre GAE y el tiempo de ejecución de Python 2.7; Comencé a usar la nueva API ndb de Guido. Sin embargo, no estoy seguro de cómo resolver un caso particular sin la función de referencia inversa implícita de la API de db original. Si […]

¿Cómo eliminar todas las entidades para el modelo NDB en Google App Engine para python?

Tengo una clase de modelo ndb: class Game(ndb.Model): gameID = ndb.IntegerProperty() gameName = ndb.StringProperty() ¿Hay alguna forma de eliminar rápidamente todas las entidades almacenadas en la base de datos para esta clase? Algo como Game.deletAll()

¿Cuál es la forma correcta de obtener la página anterior de resultados con un cursor NDB?

Estoy trabajando para proporcionar una API a través de GAE que permitirá a los usuarios avanzar y retroceder a través de un conjunto de entidades. He revisado la sección sobre cursores en la página de documentación de Consultas NDB , que incluye un código de ejemplo que describe cómo avanzar hacia atrás a través de […]

Implementación efectiva de una relación de uno a muchos con Python NDB

Me gustaría conocer su opinión acerca de la implementación efectiva de la relación uno a varios con Python NDB. (por ejemplo, Persona (una) a Tareas (muchas)) En mi entendimiento, hay tres maneras de implementarlo. Utilice el argumento ‘padre’ Uso de propiedad estructurada ‘repetida’ Utilice la propiedad de la clave ‘repetida’ Por lo general, elijo una […]

El método ndb to_dict no incluye la clave del objeto

Estoy aprovechando el método to_dict de ndb para convertir las propiedades de un objeto en un dict de python. De todo lo que puedo decir, este método no incluye la clave del objeto o el elemento principal en el dictado según la documentación: https://developers.google.com/appengine/docs/python/ndb/modelclass#Model_to_dict Sin embargo para mi situación necesito la llave para estar en […]

motor de aplicaciones de Google python: cómo extender la clase de usuario ndb

Estoy usando los puntos finales de la nube de Google y quiero poder extender la clase de User para que una llamada a get_current_user devuelva un objeto AppUser con mis propias propiedades adicionales. class AppUser(–?–): # what should i put here gcm = ndb.StringProperty() def send_notification(self): # do something with gcm … pass ¿Cómo puedo […]