Implementando patron Singleton para app Web

Marcos Alcazar marcos.alcazar en gmail.com
Mar Feb 5 20:24:43 CET 2008


Lo que yo hago es lo siguiente. Utilizo SQLAlchemy...

class AsistenteSQLAlchemy:

    class __impl:
        def spam(self):
            return id(self)

    __instancia = None

    def __init__(self):
        if AsistenteSQLAlchemy.__instancia is None:
            AsistenteSQLAlchemy.__instancia = AsistenteSQLAlchemy.__impl()

            metadata = MetaData()

            usuarios_tabla = Table ( 'usuarios' , metadata ,
                                     Column('usuario_id' , Integer ,
primary_key=True),
                                     Column('usuario_nombre', String(16) ,
nullable=False
                             )
            mapper(Usuario, usuarios_tabla )
        self.__dict__['_AsistenteSQLAlchemy__instancia'] =
AsistenteSQLAlchemy.__instancia

    def getSession(self,usuario,contras):
        engine = create_engine('postgres://' + usuario + ':' + contras +
'@localhost:5432/bd' )
        #connection = engine.connect()
        Session = sessionmaker(bind=engine, autoflush=True,
transactional=True)
        session = Session()
        return session

    def __getattr__(self, attr):
        """ Delegate access to implementation """
        return getattr(self.__instancia, attr)

    def __setattr__(self, attr, value):
        """ Delegate access to implementation """
        return setattr(self.__instancia, attr, value)


### Y de paso si alguien ve algun error y quiere correjirme, seria
excelente... Ademas, aclaro que es mi primer aporte, de aca para atras en el
tiempo lo unico que he hecho es molestar con preguntas :)

2008/2/5 Francisco Perez <francofuji en gmail.com>:

> Hola lista:
> Como podria implementar el patron Singleton en Python para manejar las
> conecciones a la BD en una app Web? Algun ejemplito basico.
>
> Saludos.
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es