cambiar el contenido de una variable en SQLAlchemy
Alberto Valverde
alberto en toscat.net
Mar Ago 5 22:11:06 CEST 2008
Jose Caballero wrote:
>>
>> session = create_session()
>> objetos = session.query(UnaClase).all()
>> # la lista "objetos" ya la puedes modificar si quieres y luego mandarla
>> a la plantilla
>>
>> http://www.sqlalchemy.org/docs/03/tutorial.html#tutorial_orm
>>
>> Alberto
>> __
>>
>>
>
>
> Hola Alberto,
>
> he hecho algo parecido a lo que me sugieres, siguiendo las instrucciones del
> tutorial.
> Tengo mi propia clase, que paso como argumento al mapper() junto a la clase
> original:
>
> db = create_engine('mysql://...........')
> MyTable = Table('TableName', BoundMetaData(db), autoload=True)
> class MyTable_map(object):
> pass
> mapper(MyTable_map, MyTable)
>
> y ya puedo trabajar con MyTable_map, y poner en ella todo lo que yo quiera.
> ¿Correcto?
>
Si está bien mapeada sí. Por cierto, no uses un BoundMetaData así si
planeas declarar más tablas ya que no podrás relacionarlas. Todas las
tablas relacionadas deben ir en la misma instancia de MetaData.
> Luego hago lo siguiente:
>
> session = create_session()
> list = session.query(MyTable_map).select(limit=10)
> ...
>
>
> De lo que me he dado cuenta es de que las 10 entradas que me devuelven no
> son las mismas 10 que obtengo si hago el query en interactivo en una sesión
> mysql, y no entiendo la razón. ¿Debería esperar que el output fuese el
> mismo? ¿Es normal que SQLAlchemy me devuelva 10 entradas diferentes a las
> que tendría con el query mysql en interactivo?
> ¿Hay algo mal en mi código que no veo?
>
Seguramente porque no has declarado ningún tipo de ordenamiento
explicitamente.. Pon un order_by/ORDER BY igual en ambos y debería darte
lo mismo (siempre y cunado los datos no se hallan modificado, claro).
Alberto
_______________________________________________
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