Google App Engine para Python

App Engine
Etiquetas:

Hace unos meses ya os conté mi experiencia en Google Code Lab realizado en Córdoba, donde tuve la oprtunidad de comprobar que … tenía que conocer Goolge App Engine. En las entradas anteriores hemos comentado la teoría sobre GAE, pero ahora sí que vamos a trabajar utilizando webapp2, veremos cómo trabajar con las plantillas jinja2, y ponerlo bonito con Twitter Bootstrap, y mucho más!

Empezamos ….

Probando Google App Engine for Python

Para probar GAE con Python, lo primero es descargarse e instalar Google App Engine SDK for Python, que puedes encontrar aquí: https://developers.google.com/appengine/downloads?hl=es. Yo he seleccionado Python, pero también está disponible para otros lenguajes como PHP, Go y Java, así que … opciones tienes varias!

En la instalación verifica que la máquina tenga instalado Python 2.7 como pre-requisito:

Prerequisitos GAE

Prerequisitos GAE

Lo siguiente es aceptar los términos, seleccionar el directorio donde quieres instalar la aplicación, siguiente, siguiente …. y en un minuto ya lo tienes instalado.

Instalando GAE

Instalando GAE

 

Probando Google App Engine con Python

Antes de lanzarnos a probar GAE, nada mejor que saber qué librerias están incluidas, y que puedes verlas aquí: https://developers.google.com/appengine/docs/python/tools/libraries27. Cómo puedes comprobar, incluye una selección bastante interesante, porque incluye NumPy, MatPlotLib, MySQLdb, pyCripto, yaml, lxml, django, … En fin, que tenemos más que suficiente para divertirnos!!

Una vez lanzado, tenemos lo siguiente:

GAE

GAE

Hacemos una prueba, y creamos una aplicación desde File / Add New Application, y completamos los datos como el nombre de la aplicación y la ruta donde se almacena, así como el motor de Python y los puertos para acceder:

Nueva aplicación

Nueva aplicación

Y ya lo tenemos, preparado para correr:

Aplicación Hola

Aplicación Hola

Le damos a Run, y vamos al navegador, al puerto que hemos seleccionado:

Aplicación Hola corriendo

Aplicación Hola corriendo

Y ya tenemos nuestra aplicación corriendo.

Diseccionando la aplicación

No hemos hecho absolutamente nada, y … el solo ha escrito el “hola mundo“, así que … vamos a la ruta y comprobamos que la aplicación es un directorio y dentro del mismo, hay una serie de ficheros:

Ficheros de la aplicación

Ficheros de la aplicación

Básicamente, tenemos el favicon, seguido de dos ficheros yaml y de nuestro fichero fuente en python (y su compilado .pyc).


import webapp2

class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello world!')

app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)

Cómo puedes comprobar, utiliza el framework webapp2 de Python.

NOTA: No he subido el código del proyecto porque … no creo que sea necesario! De todas formas, puedes ver la aplicación aquí.

Aprendiendo webApp2

Aparentemente, todo ha sido fácil hasta ahora, así que … vamos con un pequeño ejemplo. El código anterior lo modificamos, y le añadimos una variable html donde mostraremos un pequeño formulario, y un botón de enviar. Al utilizar el método post, se ejecutará MainHandler.post donde mostrará un mensaje.

import webapp2

root = '/'
html = """
<html lang="es">
    <head><title>Probando Google App Engine for Python</title></head>
    <body>
        <h1>Probando Google App Engine for Python</h1>
        <p>Cargado %d veces</p>
        <form method="post">
            <label for="nombre">Nombre</label>
            <input name="nombre" id="nombre" type="text" value="" />
            <input type="submit" value="Enviar">
        </form>
    </body>
</html>
"""

class MainHandler(webapp2.RequestHandler):

    def post(self):
        nombre = self.request.get("nombre")
        if len(nombre) == 0:
            self.redirect(root)
        mensaje = ('Hola ... %s' % (nombre))
        self.response.out.write(mensaje)

    def get(self):
        self.response.write(html)

app = webapp2.WSGIApplication([(root, MainHandler)], debug=True)

Y lo vemos funcionando:

Probando webApp2 en GAE

Probando webApp2 en GAE

Introducimos un nombre, y vemos el resultado:

Probando webApp2 en GAE

Probando webApp2 en GAE

Y hasta aquí la entrada de hoy, con este pequeño ejemplo donde se muestra cómo trabajar con el framework webapp2.

Buen día!