¿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
[email protected]
2012/9/26 miguel zamora m. <[email protected]>
> 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
> <[email protected]> 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
> > <[email protected]> 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
> >> [email protected]
> >> http://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >>
> >>
> >>
> >> _______________________________________________
> >> Python-es mailing list
> >> [email protected]
> >> http://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >>
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > [email protected]
> > 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
> [email protected]
> Santiago-Chile
> _______________________________________________
> Python-es mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/