Crear un applet de tornado

# 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

Supongo que te gusta

Origin www.cnblogs.com/Gaimo/p/12517842.html
Recomendado
Clasificación