paquete fuente tornado incluye directorio algunos procedimientos ejemplares Demos, desde el punto de vista de una estructura de código simple tornado aplicación helloworld.py.
Programa completo ejemplo es el siguiente:
01 #! / Usr / bin / env python 02 # 03 # Copyright 2009 Facebook 04 # 05 06 importación tornado.httpserver 07 importación tornado.ioloop 08 tornado.options importación 09 importación tornado.web 10 11 desde tornado.options importar definir, opciones 12 13 define ( "puerto", por defecto = 8888, ayuda = "Ejecutar en el puerto determinado", type = int) 14 15 16 clase MainHandler (tornado.web.RequestHandler): 17 def get (self): 18 self.write ( "Hola, Nowamagic") 19 20 21 def main (): 22 tornado.options.parse_command_line () 23 aplicación = tornado.web.Application ([ 24 (r "/", MainHandler), 25]) 26 http_server = tornado.httpserver.HTTPServer (aplicación) 27 http_server.listen (options.port) 28 tornado.ioloop.IOLoop.instance (). Start () 29 30 31 Si __name__ == "__main__": 32 main ()
El primero es un conjunto de importación. El más normal, por supuesto, antes que los demás o tiene un comentario o algo así.
1 importación tornado.httpserver 2 importación tornado.ioloop 3 tornado.options importación 4 importación tornado.web 5 6 de tornado.options importar definir, opciones
A continuación, es la opción para definir la aplicación, por lo que puede especificar parámetros al iniciar la aplicación. tornado tornado.options.define proporciona un método para simplificar las opciones de personalización de los parámetros pueden ser vistos por ayuda específica. Estos son ejemplos de directa definir los parámetros de puerto:
1 define ( "puerto", por defecto = 8888, ayuda = "Ejecutar en el puerto determinado", type = int)
Lo siguiente es la configuración MainHandler:
1 clase MainHandler (tornado.web.RequestHandler): 2 def get (auto): 3 self.write ( "Hola, Nowamagic")
XXHandler aplicación específica para la URL asignada.
Handler se define a continuación la función main ():
1 def main (): 2 tornado.options.parse_command_line () 3 = aplicación tornado.web.Application ([ 4 (r "/", MainHandler), 5]) 6 http_server = tornado.httpserver.HTTPServer (aplicación) 7 http_server .listen (options.port) 8 tornado.ioloop.IOLoop.instance (). start ()
Cuando se ejecuta la aplicación, primero seleccione el análisis de parámetros. Después de crear una instancia de aplicación y se pasa a HTTPServer ejemplo, después de comenzar este caso, esto, servidor http comenzado. tornado.httpserver módulo se utiliza para apoyar sin bloqueo del servidor HTTP.
Después de iniciar el servidor, también es necesario para iniciar una instancia IOLoop, para que pueda comenzar el mecanismo de bucle de eventos, trabajando con no bloqueo del servidor HTTP. Por supuesto, la implementación específica es bastante complejo, aquí es sólo una descripción rápida.