wiki:probando_tornado

Inicio > Actividades para el 2019 > Estudiando Tornado (web server)


Estudiando Tornado (web server)

Tornado es un framework diseñado para crear servidores web en modo no bloqueo, permite la continuidad de procesos después de que la transmisión de datos haya concluido- con el lenguaje de programación Python. Tornado es una biblioteca de redes asíncronas que puede gestionar miles de conexiones abiertas mediante el uso de redes entrada / salida no bloqueantes, siendo ideal para long polling, WebSockets? y otras aplicaciones que requieren conexión. Tornado se puede dividir en cuatro componentes:

  • Un framework web (que incluye RequestHandler?, que es una subclase para crear aplicaciones web y otras clases de soporte).
  • Implementaciones de HTTP del lado del servidor y del lado del cliente (HttpServer? y AsyncHTTPClient).
  • Una biblioteca de redes asíncronas incluyendo las clases IOLoop y IOStream, las cuales sirven de construcción de bloques para los componentes HTTP y se pueden usar para la implementación de otros protocolos.
  • Una biblioteca de co-rutinas (tornado.gen), la cual permite que el código asíncrono pueda ser escrito de una manera más directa que las llamadas de vuelta encadenadas.


Notas:

  • Este manual fue probado en GNU/Linux Debian 9 Stretch de 64 bits.
  • Usaremos $ para describir los comandos que se usaran con usuario regular.
  • Usaremos # para describir los comandos que se usaran con superusuario.


Requerimientos

  • Tornado requiere Python superior a la versión 3.4 y no soportará Python 2.


1. Instalación

Para esta prueba instalaremos tornado usando pip:

# pip install tornado


2. Mi primera aplicación con Tornado

  1. Habiendo realizado el paso de la instalación con éxito, se procederá a crear un archivo, se llamará en este caso: holamundo con una extensión .py dado que será escrito con Python.
  1. Ahora se abre el archivo y dentro de escribirá lo siguiente:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #!python
    # IOLoop maneja los eventos relacionados con los sockets, por ejemplo, si tienen
    # datos disponibles para leer, si pueden escribirse y si se ha producido un error.
    import tornado.ioloop
    
    # Envía la aplicación al servidor web
    import tornado.web
    
    # Clase que enviará el saludo
    class HolaMundoHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Mensaje a enviar: ¡Hola mundo!")
    
    # Constructor de la aplicación
    def enviar_saludo_app():
        return tornado.web.Application([
            (r"/", HolaMundoHandler),
        ])
    
    if __name__ == "__main__":
        
        # Aplicación que se servirá
        app = enviar_saludo_app()
        
        # Puerto en el que será mostrada
        app.listen(8888)
    
        # Corre el servidor
        tornado.ioloop.IOLoop.current().start()
    


3. Despliegue de la aplicación

  1. Desde la consola se debe correr el comando:
    $ python holamundo.py
    
  1. Visitamos la siguiente URL en el navegador web:
    http://localhost:8888/
    
  1. Nos mostrará el mensaje anteriormente escrito en el código:

4. Fuentes:

Last modified 5 years ago Last modified on Apr 10, 2019, 1:18:50 PM

Attachments (1)

Download all attachments as: .zip