[pyar] Framework web

Horacio G. de Oro hgdeoro en gmail.com
Mie Jun 1 22:45:36 ART 2011


2011/6/1 Martin Cerdeira <martincerdeira en gmail.com>:
> Vuelvo al ruedo con una pregunta similar a la que hice una vez (ya pregunté
> si me recomendaban usar frameworks web o no)
>
> Esta vez la pregunta es:
>
> Tenés que hacer algo web, con python, pero, querés hacerlo rápido (tirar los
> scripts y poco más), no querés configurar 20 mil cosas, es decir, querés
> algo que sea a python/web lo que PyQt es a python/desktop [0].
> Qué usas??
>

CherryPy es bastante liviano y ágil. Lo usé para hacer web-enable una
librería q' desarrollé para comunicarte con Arduinos desde Python. Se
ve más fácil con un poco de código: por ejemplo, para levantar
CherryPy, con soporte para sesiones y para usar Jinja2 como motor de
templaes:

def start_webserver():
    conf = {
        '/': { 'tools.sessions.on': True, },
        '/static': { 'tools.staticdir.on': True,
            'tools.staticdir.dir': '/path/a/recursos/estaticos',  }  }
    jinja2_env = jinja2.Environment(loader=jinja2.FileSystemLoader(
        '/path/a/recursos/estaticos'))
    cherrypy.quickstart(Root(jinja2_env), '/', config=conf)

Y los URLs los asociás a métodos usando anotaciones. Por ejemplo, el
siguiente método se ejecuta al acceder a /list

@cherrypy.expose
def list(self):
    pass

Y si necesitas devolver JSON, te lo transforma automáticamente:

@cherrypy.tools.json_out()
@cherrypy.expose
def get_data(self):
    return { 'count': 5, 'otro_atributo': 'otro valor', }

(podes ver un ejemlpo completo en
https://github.com/hgdeoro/py-arduino-proxy/blob/master/src/arduino_proxy/web.py)

Saludos!
Horacio



More information about the pyar mailing list