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