Procesadores de aplicaciones, loadhooks y unloadhooks

Problema

¿Cómo utilizar los processors de aplicaciones, loadhooks y unloadhooks?

Solución

Las aplicación web.py permite la adición de processors, que pueden hacer algo de procesamiento antes y después de la ejecución de las peticiones(requests).

 1 import web
 2
 3 urls = (
 4             '/(.*)', 'hello'
 5        )
 6
 7 app = web.application(urls, globals())
 8
 9 def my_processor(handler):
 10     print 'before handling'
 11     result = handler()
 12     print 'after handling'
 13     return result
 14
 15 app.add_processor(my_processor)
 16
 17 class hello:
 18     def GET(self, name):
 19         if not name:
 20             name = 'World'
 21         return 'Hello, ' + name + '!'
 22
 23
 24 if __name__ == "__main__": app.run()

Load hooks and unload hooks se puede utilizar para realizar acciones en el comienzo y el final de las peticiones(requests).

 1 import web
 2
 3 urls = (
 4             '/(.*)', 'hello'
 5        )
 6
 7 app = web.application(urls, globals())
 8
 9 def my_loadhook():
 10     print "my load hook"
 11
 12 def my_unloadhook():
 13     print "my unload hook"
 14
 15 app.add_processor(web.loadhook(my_loadhook))
 16 app.add_processor(web.unloadhook(my_unloadhook))
 17
 18 class hello:
 19     def GET(self, name):
 20         if not name:
 21             name = 'World'
 22         return 'Hello, ' + name + '!'
 23
 24
 25 if __name__ == "__main__": app.run()

Usted puede escribir o utilizar variables globales en funciones hook, por ejemplo: web.header().

def my_loadhook():
    web.header('Content-type', "text/html; charset=utf-8")

app.add_processor(web.loadhook(my_loadhook))

Tip: y también puede utilizar web.ctx o web.input() en el hook.

def my_loadhook():
    input = web.input()
    print input
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s