# Codificación: utf8 importación sys import os import re configuración = "" " # - * - coding: UTF-8 - * - import os base_path = os.path.dirname (__ file__) ajuste = { "depuración": true, " static_path ": os.path.join (base_path, "estática"), "template_path": os.path.join (base_path, "templates") } """ vistas = """ # - * - coding: UTF-8 - * - tornado.web importación de tornado importación generación de concurrent.futures importar ThreadPoolExecutor de tornado.concurrentes run_on_executor importación # crea sus puntos de vista oyen clase DemoHandler (tornado.web.RequestHandler): ejecutor = ThreadPoolExecutor (32) @ gen.coroutine def get (self, * args, kwargs **): resultado = rendimiento self.demo () self.write (resultado) self.finish () @run_on_executor def demostración (auto): "! hola mundo" retorno "" " Direcciones URL = """ # - * - coding: UTF-8 - * - de tornado.web Aplicación importación de vistas importar * de configuración Ajuste de importación de tornado.routing ReversibleRuleRouter importación de importación tornado.web url aplicaciones de clase (Solicitud , ReversibleRuleRouter): url (r '/', DemoHandler, name = "demo"), ] super (Aplicaciones, auto-) .__ init __ (manipuladores = manipuladores, ** ajuste) "" " de ejecución del servidor = """ # - * - coding: UTF 8 - * - de tornado.options importar definir opciones de importación tornado.ioloop IOLoop de URLs importar aplicaciones definen ( "puerto", por defecto = 8888, tipo = int) define ( "dirección", por defecto = "127.0.0.1", type = str) si __name__ == '__main__': options.parse_command_line () aplicación = Aplicaciones () app.listen (puerto = options.port, dirección = options.address) . IOLoop.current start () () """ clase CreateProject (objeto): DEF la __init__ (Self): self.base_dir = os.path.dirname (os.path.abspath con ( __FILE__ )) self.argument = " -H " IF len (la sys.argv) == 1. El otro la sys.argv [1. ] . auto __help__ = "" " la operación: \ n = -p project_name: creada en la ruta actual \ n = f / full_path / project_name :. . creada en la ruta especificada" "" self.project_name = "" self.project_dir = " " self.all_dir = [] self.settings =" Settings.py " self.urls = " urls.py " self.views = " views.py " self.statics = " estática " self.templates = " plantillas " def __create_file__ (self, nombre de archivo, el contenido): FILE_PATH = OS .path.join (self.project_dir, nombre de archivo) write_file = abierto (FILE_PATH, ' w ' ) write_file.write (contenido) write_file.close () def __set_up__ (self): os.makedirs (self.project_dir) os.makedirs (os.path.join (self.project_dir, self.templates)) os.makedirs (os.path.join (self.project_dir, self.statics) ) auto. __create_file__ ( ' views.py ' , visitas) auto. __create_file__ ( ' settings.py ' , ajustes) auto. __create_file__ ( ' urls.py ' , las direcciones URL) auto. __create_file__ ( ' runserver.py ' , runserver) def __project_name__ (auto): Proyecto = self.argument.split ( " = " ) [1. ] SI No Proyecto: Imprimir " de entrada no puede estar vacía! " Salir () Compruebe = la re.compile ( ' \ W es + ' ) SI check.search (Proyecto): imprimir " introducido de forma incorrecta (nombre del proyecto no puede contener chino o caracteres especiales) por favor, vuelva a entrar! " Salir () self.project_name = proyecto de raíz, dir, archivo en os.walk (self.base_dir): self.all_dir = dir PAUSA SI self.project_name en self.all_dir: Imprimir " ! nombre de archivo ya existe, por favor vuelva a entrar " Salir () self.project_dir = os.path.join (self.base_dir, self.project_name) el try : Ser. __set_up__ () la excepción de excepción como E: Imprimir E Salir () DEF __full_path__ (Ser): self.project_dir = self.argument.split ( ' = ' .) [1] SI os.path.exists (self.project_dir): Imprimir " ruta del proyecto ya existe, por favor vuelve a entrar! " Salir () el try : . Ser __set_up__ () la excepción de excepción como E: Imprimir E Salir () DEF principal (Ser) : SI len (self.argument.split ( ' = ' )) == 2 : SI ' -p ' en self.argument: . Auto __project_name__ ) ( elif '-f ' en self.argument: sí. __full_path__ () otra cosa : de impresión auto. __help__ si __name__ == " __main__ " : . CreateProject main () ()
pequeño programa sencillo para crear automáticamente los proyectos de tornado