Herramientas de usuario

Herramientas del sitio


fw:tornado

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
fw:tornado [2013/08/24 18:20]
alfred creado
fw:tornado [2020/05/09 09:25] (actual)
Línea 1: Línea 1:
 ====== Tornado ====== ====== Tornado ======
 +===== Básico =====
 +  * [[http://​www.tornadoweb.org/​en/​stable/​|Web del proyecto]]
 +  * [[http://​www.tornadoweb.org/​en/​branch2.4/​overview.html|Overview]] y [[http://​www.tornadoweb.org/​en/​branch2.4/​documentation.html|Documentación]].
  
 +<code python>
 +import tornado.ioloop
 +import tornado.web
 +
 +class MainHandler(tornado.web.RequestHandler):​
 +    def get(self):
 +        self.write("​Hello,​ world"​)
 +
 +application = tornado.web.Application([
 +    (r"/",​ MainHandler),​
 +])
 +
 +if __name__ == "​__main__":​
 +    application.listen(8888)
 +    tornado.ioloop.IOLoop.instance().start()
 +</​code>​
 +Una aplicación que utilice tornado se define a partir de unos patrones que indican la ruta y las clases que gestionarán peticiones a dichas rutas.
 +==== RequestHandler'​s ====
 +<code python>
 +class MainHandler(tornado.web.RequestHandler):​
 +    def get(self):
 +        self.write("​You requested the main page")
 +
 +class StoryHandler(tornado.web.RequestHandler):​
 +    def get(self, story_id):
 +        self.write("​You requested the story " + story_id)
 +
 +application = tornado.web.Application([
 +    (r"/",​ MainHandler),​
 +    (r"/​story/​([0-9]+)",​ StoryHandler),​
 +])
 +</​code>​
 +==== Cómo... ====
 +=== ... Instalar? ===
 +<​code>​
 +$ pip install tornado
 +</​code>​
 +=== ... Servir contenido estático? ===
 +<code python>
 +application = tornado.web.Application([
 +    (r'/​(.*)',​ tornado.web.StaticFileHandler,​ {'​path':​ '​../​static/'​}),​
 +    (r'/​(.*)',​ tornado.web.StaticFileHandler,​ {'​path':​ '​../​static/​index.html'​})
 +])
 +</​code>​
 +<code python>
 +class IndexHandler(tornado.web.RequestHandler):​
 +    def get(self, *args, **kwargs):
 +        self.render('​index.html'​)
 +</​code>​
 +=== ... Indicar que es debug y se muestre más info por consola? ===
 +Como argumento ''​debug=True''​ al constructor del objeto aplicación.
 +===== Notas =====
 +  * {{:​fw:​tornado:​tornado_zmq_websockets.zip|Estos apuntes}} explican cómo crear un websocket que publica a partir de datos recibidos por ZeroMQ. Fuentes:
 +    * [[http://​zeromq.github.io/​pyzmq/​eventloop.html]]
 +    * [[https://​learning-0mq-with-pyzmq.readthedocs.org/​en/​latest/​pyzmq/​multisocket/​tornadoeventloop.html]].
 +    * [[https://​github.com/​FZambia/​tornado-zmq-sockjs-example]]
fw/tornado.1377368422.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)