El mito de la complejidad en persistir datos utilizando el datastore
martes, 25 de marzo de 2014
Gran cantidad de desarrolladores afrontan día a día el desafío de crear soluciones web en donde se involucra la función de persistencia. El almacenamiento de datos en una aplicación web escalable puede ser complicado si lo abordamos de forma tradicional. En este artículo vamos a presentar prácticamente como utilizar el datastore de App Engine en simples pasos y con muy pocas líneas de código resolver un ambiente de persistencia.
La infraestructura de App Engine se encarga de la distribución, replicación y el balanceo de carga. Vamos a mostrarte que es solo un mito la complejidad de almacenar datos en el datastore.
Vamos a utilizar el lenguaje de desarrollo Python (versión 2.7) y, para simplificar, el desarrollo el framework webapp2, integrado en el SDK de App Engine.
Nuestra desafío será construir en minutos una solución simple que maneje formularios web y que almacene los datos capturados en el datastore.
Podemos utilizar diversos entornos de desarrollo según las preferencias del desarrollador, además es requerido el SDK para Python de App Engine. (utilice el indicado según la plataforma escogida)
Para cumplir con nuestro objetivo necesitamos básicamente dos archivos:
- app.yaml
- index.yaml
- datastore.py
Datastore.py
Fig. 1 Encabezado del archivo datastore.py |
Fig. 2 Modelo creado para el datastore |
Fig. 3 Clase que maneja la carga inicial del desafío planteado |
Luego se puede observar un estructura repetitiva que recorre la colección de consultas desde la línea #57 a la #63. Finalmente se implementa el manejo de la sesión de usuario.
La Fig.4 muestra el manejo de la persistencia para la consultas donde se realiza una rutina de inserción entre la línea #89 y 90. El método más importante se puede ver en la línea #90 donde se ejecuta el c.put.
Finalmente la Fig. 5 muestra la manipulación de webapp2 para completar el mecanismo solicitado en el desafío que propone el articulo.
Fig.4 Clase Consultas |
Fig. 5 Manipulación de webapp2 |
Referencias: