orm para python

Chema Cortes pych3m4 en gmail.com
Vie Ene 16 16:13:00 CET 2009


El 2009/1/16 damufo <damufo en gmail.com> escribió:

> Me gustaría conocer alguna opinión sobre ventajas en inconvenientes o
> experiencia con los distintos orm para python, o por lo menos de sqlalchemy
> (elixir?) y storm
> Sirven todo para lo mismo? hai alguno especializado en algo?
> No se porque mo tivo me parece mas simple el uso de sql directamente y no se
> si debería ser así. Puede que no acabe de entender el concepto.

Estamos hablando de un "mapeo" entre los datos de la base de datos y
los objetos de la aplicación. Excepto con lo tipos más básicos, se
necesitan "adaptadores" (de objeto a db) y "conversores" (de db a
objeto) para mantener este mapeo, con todo lo que implica de mantener
la lógica relacional en el paradigma de la orientación a objetos.

Los sistemas ORMs te automatizan este proceso, encargándose de
mantener el modelo e, incluso, de hacer que funcionen
independientemente del sistema gestor de base de datos.

Por ejemplo, django tiene el tipo de dato IPAddress para guardar
direcciones IP. En postgresql, es un tipo de dato básico que no
requiere de conversiones; en sqlite no existe este tipo, por lo que
necesitas un adaptador para almacenar un IPAddress en una string y un
conversor para pasar de string a IPAddress.

Usar SQL tiene la ventaja de que es el servidor el que trabaja
haciendo lo que mejor sabe hacer, optimizando las consultas y
ofreciendo los resultados a medida que se necesiten. Los ORMs, por
contra, te permiten trabajar con una abstracción del modelo de datos
en el mismo lenguaje (y paradigma) que se usa en la aplicación, lo que
resulta más sencillo de mantener.

Entre los ORMs, hay algunas discursiones en esta lista que te aconsejo
que busques, donde se hablaba de los tipos de ORMs que hay y sus
diferencias o ventajas.
_______________________________________________
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