¿No te faltará crear la tabla? Un codigo de ejemplo.
from sqlalchemy.orm import sessionmaker, relationship, backref engine = create_engine('sqlite:///:memory:', echo=True) metadata = MetaData() metadata.bind = engine Session = sessionmaker(bind=engine) from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() Base.metadata = metadata Luis Fernando Barrera lfbarrer...@gmail.com 2012/9/26 miguel zamora m. <mzmp...@gmail.com> > quiza te sirva un poco de codigo para poder compara y tomar ideas > > te dejo esta pagina donde en un proyecto que me toco ver en su minuto > me ayudo mucho > > http://nullege.com/ > > > http://nullege.com/codes/show/src%40d%40b%40dbcook-HEAD%40trunk%40dbcook%40usage%40example%40example1.py/11/sqlalchemy/python > > > ademas esta doc esta bastante bien > > http://www.cafepy.com/article/python_attributes_and_methods/ > > > http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.pdf > > > > > > > > > > > El día 26 de septiembre de 2012 10:37, Jose Caballero > <jcaballero....@gmail.com> escribió: > > en esa linea estoy investigando. > > Mi problema va un poco mas lejos. > > Me gustaria ser capaz de poder gestionar un numero arbitrario de tablas > > (todas con el mismo 'schema'). En otras palabras, necesitaria un numero > > indefinido de clases, cada una con un nombre diferente (que luego sera, > > siguiente ese ejemplo, el nombre de la tabla). > > Estoy intentando combinar el ejemplo de la doc usando declared_attr con > lo > > [poco] que se de factorias de clases. > > > > Muchas gracias, > > Jose > > > > > > El 26 de septiembre de 2012 03:19, Marcos Sánchez Provencio > > <ra...@arrakis.es> escribió: > > > >> Creo que lo que quieres es declared_attr > >> > >> De la docu, un ejemplo de uso: > >> > >> from sqlalchemy.ext.declarative import declared_attr > >> > >> class MyMixin(object): > >> > >> @declared_attr > >> def __tablename__(cls): > >> return cls.__name__.lower() > >> > >> __table_args__ = {'mysql_engine': 'InnoDB'} > >> __mapper_args__= {'always_refresh': True} > >> > >> id = Column(Integer, primary_key=True) > >> > >> class MyModel(MyMixin, Base): > >> name = Column(String(1000)) > >> > >> > >> > >> > >> El 25/09/12 16:20, Jose Caballero escribió: > >> > >> Hola, > >> > >> > >> SQLAlchemy 0.7.8-1 > >> python 2.4 > >> > >> > >> Si hago algo como lo siguiente [1] todo funciona perfectamente. Luego > >> puedo crear la tabla en la DB con el nombre "table1", y puedo > interaccionar > >> con ella. > >> Lo que quisiera hacer es que el nombre de la tabla fuese un parametro. > >> Pero si hago algo como [2], al intentar usar la clase (para salvar un > objeto > >> session, por ejemplo) obtengo este mensaje de error [3]. > >> Estoy intentando investigar por que, pero si alguien mientras tanto me > da > >> una pista, todo comentario sera bien recibido. > >> > >> > >> Muchas gracias por adelantado. > >> Jose > >> (perdon por la ausencia de tildes) > >> > >> > >> > >> > ------------------------------------------------------------------------------------------------------- > >> [1] > >> > >> > >> Base = declarative_base() > >> class Foo(Base): > >> __tablename__ = "table1" > >> id = Column(Integer, primary_key=True) > >> var1 = Column(String) > >> var2 = Column(String) > >> > >> > >> > ------------------------------------------------------------------------------------------------------- > >> [2] > >> > >> Base = declarative_base() > >> def createFoo(tablename): > >> class Bar(Base): > >> __tablename__ = tablename > >> id = Column(Integer, primary_key=True) > >> var1 = Column(String) > >> var2 = Column(String) > >> return Bar > >> > >> > >> Foo = createFoo('table1') > >> > >> > >> > ------------------------------------------------------------------------------------------------------- > >> [3] > >> > >> sqlalchemy.exc.OperationalError: (OperationalError) no such table: > table1 > >> u'INSERT INTO table1 (var1, var2) VALUES (?, ?)' ('blah', 'blah') > >> > >> > >> > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es@python.org > >> http://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > >> > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es@python.org > >> http://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es@python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > -- > Miguel Zamora M. > Programador en Computacion e Informatica > 08-1351249 > mzmp...@gmail.com > Santiago-Chile > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/