Re: [Python-es] ORM de django vs SQLAlchemy

2010-03-17 Por tema Chema Cortes
On 17/03/10 23:21, Jose Caballero wrote:
> En mi caso concreto son bases de datos Oracle. Las tablas ya estan
> creadas, y los esquemas son fijos. Lo que necesito es hacer muchas
> consultas solo-lectura a esas DB, procesar el resultado (hacer
> graficos y esas cosas) y, de vez en cuando, modificar el contenido de
> una de las tablas. El tamagno de las tablas a leer es del orden de 10
> millones de entradas por tabla.

Una diferencia fundamental entre django ORM y Alchemy cuando usas bases
de datos ya creadas (databases "legacy") es que la introspección de
django se limita a crear un modelo nuevo a partir del que tienes, pero
no siempre es posible usar la tablas originales sin modificación. Por
contra, Alchemy ofrece muchas más posibilidades de mapear cualquier
tabla, vista o query a una clase, sin alteración del modelo original.

Yo tuve un problema similar, donde django no funcionaba a no ser que
modificara mis tablas originales de oracle. Por simpleza, terminé
construyendo un nuevo modelo de datos ajustado a las necesidades de
django donde pasaba puntualmente los datos que necesitaba en cada
momento. En tu caso no parece que sea lo recomendable, por lo que o bien
utiliza alchemy o bien extrae los datos sin pasar por un ORM (que no es
obligado).
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ORM de django vs SQLAlchemy

2010-03-17 Por tema Jose Caballero



On Mar 17, 2010, at 17:15, Chema Cortes  wrote:


El día 17 de marzo de 2010 15:39, Jose Caballero
 escribió:

El hecho de que django aún no de soporte estable a consultas multi 
-db es un
dato importante en mi caso. Tengo que lidiar con 3 bases de datos  
distintas

a la vez.

La velocidad no es, de momento, un factor crucial.

El otro factor que es importante para mí, y creo que ahí es donde  
se nota mi

inexperiencia, es que necesito crear clases que incluyan no sólo el
resultado de cada 'query' (por lo que asumo las clases serán en pa 
rte una
réplica de mi 'schema') sino además mis propios métodos para hacer 
 análisis
estadístico con los resultados de los 'queries', etc. Aunque imagi 
no que
será igual de fácil en ambos casos, con una simple herencia de cla 
ses o

similar.


Deberías haber empezado por lo que estabas buscando. SQLAlchemy está
llamado a convertirse en un estándar; pero si vas a trabajar con
django, no hay que pensar en nada más y usar lo que te ofrece django:
es rápido y lo hace muy bien. Si es necesario, puedes combinar ambos
ORM, siempre a costa de duplicar conexiones. Usa django ORM para el
control de sesiones y otras facilidades propias de la gestión web que
requieran diseños específicos de tablas, y usa alchemy para bases de
datos que estén ya creadas por otras aplicaciones con las que quieras
compartir diseño y código. Alchemy destaca por ser multibase, con
mejor soporte para un mayor número de SGDBs, con claves primarias y
externas multicolumna, joins reales, etc, etc. Y es muy robusto.

Para mí (opinión subjetiva) los ORMs no se pueden comparar
correctamente sin precisar qué base de datos vas a usar. Comparar OR 
Ms

para luego usar sqlite como que no tiene mucho sentido.


En mi caso concreto son bases de datos Oracle. Las tablas ya estan  
creadas, y los esquemas son fijos. Lo que necesito es hacer muchas  
consultas solo-lectura a esas DB, procesar el resultado (hacer  
graficos y esas cosas) y, de vez en cuando, modificar el contenido de  
una de las tablas. El tamagno de las tablas a leer es del orden de 10  
millones de entradas por tabla.


Gracias por las respuestas,
Jose
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ORM de django vs SQLAlchemy

2010-03-17 Por tema Chema Cortes
El día 17 de marzo de 2010 15:39, Jose Caballero
 escribió:

> El hecho de que django aún no de soporte estable a consultas multi-db es un
> dato importante en mi caso. Tengo que lidiar con 3 bases de datos distintas
> a la vez.
>
> La velocidad no es, de momento, un factor crucial.
>
> El otro factor que es importante para mí, y creo que ahí es donde se nota mi
> inexperiencia, es que necesito crear clases que incluyan no sólo el
> resultado de cada 'query' (por lo que asumo las clases serán en parte una
> réplica de mi 'schema') sino además mis propios métodos para hacer análisis
> estadístico con los resultados de los 'queries', etc. Aunque imagino que
> será igual de fácil en ambos casos, con una simple herencia de clases o
> similar.

Deberías haber empezado por lo que estabas buscando. SQLAlchemy está
llamado a convertirse en un estándar; pero si vas a trabajar con
django, no hay que pensar en nada más y usar lo que te ofrece django:
es rápido y lo hace muy bien. Si es necesario, puedes combinar ambos
ORM, siempre a costa de duplicar conexiones. Usa django ORM para el
control de sesiones y otras facilidades propias de la gestión web que
requieran diseños específicos de tablas, y usa alchemy para bases de
datos que estén ya creadas por otras aplicaciones con las que quieras
compartir diseño y código. Alchemy destaca por ser multibase, con
mejor soporte para un mayor número de SGDBs, con claves primarias y
externas multicolumna, joins reales, etc, etc. Y es muy robusto.

Para mí (opinión subjetiva) los ORMs no se pueden comparar
correctamente sin precisar qué base de datos vas a usar. Comparar ORMs
para luego usar sqlite como que no tiene mucho sentido.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Socket SSL

2010-03-17 Por tema Ricardo Catalinas Jiménez
Gracias por la ayuda. El caso es que he visto por ahí leyendo que en
Python 2.5 no hay soporte de SSL del lado del servidor así que justo que
lo quería hacer, no se puede. En 2.6 está solucionado con el nuevo
módulo SSL.

Ciao.

On Wed, Mar 17, 2010 at 03:18:05PM -0400, Boris Perez Canedo wrote:
> 
> 
> > Estoy intentando usar SSL sobre un socket que tengo establecido entre un 
> >
> cliente y un servidor pero no consigo que me funcione. Me da un error al 
> >
> inicializar el SSL. 
> >?
> 
> > Comentar que uso Python 2.5 y uso
> `socket.ssl()' en vez de 
> > `ssl.wrap_socket()'. 
> 
> Disculpa me salte
> esta parte.
> Nunca he utilizado socket.ssl() pero me imagino que deba ser similar, o
> sea, pienso que debes crear los ficheros: certificado y llave?privada y que 
> tambien
> debas especificar la version del ssl como te decia en el comentario anterior.
> 
> Lo del error creo que se debe a que no puede hacer el handshake...
> 
> Saludos.
> Boris.
> 
> 
> 
> ---
> La mejor vacuna contra el virus A(H1N1) es la higiene personal

> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


-- 
Ricardo
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Socket SSL

2010-03-17 Por tema Boris Perez Canedo


> Estoy intentando usar SSL sobre un socket que tengo establecido entre un 
>
cliente y un servidor pero no consigo que me funcione. Me da un error al 
>
inicializar el SSL. 
>�

> Comentar que uso Python 2.5 y uso
`socket.ssl()' en vez de 
> `ssl.wrap_socket()'. 

Disculpa me salte
esta parte.
Nunca he utilizado socket.ssl() pero me imagino que deba ser similar, o
sea, pienso que debes crear los ficheros: certificado y llave�privada y que 
tambien
debas especificar la version del ssl como te decia en el comentario anterior.

Lo del error creo que se debe a que no puede hacer el handshake...

Saludos.
Boris.



---
La mejor vacuna contra el virus A(H1N1) es la higiene personal
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] [ANN] Anulada la recepción de reco pilatorios de la lista

2010-03-17 Por tema Rolando Espinoza La Fuente
2010/3/17 Chema Cortes :
[...]
>
> Aquellos suscriptores que habían activado la "entrega como
> recopilatorio" recibirán hoy el último recopilatorio. A partir de ahora,
> cada mensaje enviado a la lista llegará a cada suscriptor como un correo
> separado.
>
> Este cambio no requiere ninguna intervención por parte del suscriptor.
>

Acertada decisión.

En varias listas que participo es el problema común, muchos usuarios
nuevos no estan familiarizados con mailman y seleccionan la opción
digest, y luego por su desconocimiento reciben tabla por la netiquette :)

Saludos,

Rolando
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] [ANN] Anulada la recepción de re copilatorios de la lista

2010-03-17 Por tema Marcos García
Pues a mi no me gusta que se quiten, pero tampoco me molesta tanto no
tenerlos...

Saludos.

2010/3/17 Kiko 

>
> El 17 de marzo de 2010 19:27, Chema Cortes  escribió:
>
> Ante el continuado abuso que estábamos comprobando en el uso de los
>> recopilatorios ("digests"), y visto que éstos habían despertado
>> molestias en bastantes usuarios, los administradores de esta lista hemos
>> creído conveniente desactivar completamente esta opción, con lo que la
>> única forma de entrega de mensajes será la "entrega regular" (que era la
>> opción por defecto).
>>
>> Aquellos suscriptores que habían activado la "entrega como
>> recopilatorio" recibirán hoy el último recopilatorio. A partir de ahora,
>> cada mensaje enviado a la lista llegará a cada suscriptor como un correo
>> separado.
>>
>> Este cambio no requiere ninguna intervención por parte del suscriptor.
>>
>> Lamentamos todo inconveniente que esta medida haya podido causar.
>>
>>
>> Saludos,
>> Chema Cortés
>> Administrador de la lista python-es@python.org
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
> Yo mismo causé problemas a la lista con los digest por desconocimiento.
>
> Me parece una medida acertada.
>
> Gracias y saludos.
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
marcos garcía // marcos...@gmail.com
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] [ANN] Anulada la recepción de re copilatorios de la lista

2010-03-17 Por tema Kiko
El 17 de marzo de 2010 19:27, Chema Cortes  escribió:

> Ante el continuado abuso que estábamos comprobando en el uso de los
> recopilatorios ("digests"), y visto que éstos habían despertado
> molestias en bastantes usuarios, los administradores de esta lista hemos
> creído conveniente desactivar completamente esta opción, con lo que la
> única forma de entrega de mensajes será la "entrega regular" (que era la
> opción por defecto).
>
> Aquellos suscriptores que habían activado la "entrega como
> recopilatorio" recibirán hoy el último recopilatorio. A partir de ahora,
> cada mensaje enviado a la lista llegará a cada suscriptor como un correo
> separado.
>
> Este cambio no requiere ninguna intervención por parte del suscriptor.
>
> Lamentamos todo inconveniente que esta medida haya podido causar.
>
>
> Saludos,
> Chema Cortés
> Administrador de la lista python-es@python.org
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>

Yo mismo causé problemas a la lista con los digest por desconocimiento.

Me parece una medida acertada.

Gracias y saludos.
___
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] [ANN] Anulada la recepción de re copilatorios de la lista

2010-03-17 Por tema Chema Cortes
Ante el continuado abuso que estábamos comprobando en el uso de los
recopilatorios ("digests"), y visto que éstos habían despertado
molestias en bastantes usuarios, los administradores de esta lista hemos
creído conveniente desactivar completamente esta opción, con lo que la
única forma de entrega de mensajes será la "entrega regular" (que era la
opción por defecto).

Aquellos suscriptores que habían activado la "entrega como
recopilatorio" recibirán hoy el último recopilatorio. A partir de ahora,
cada mensaje enviado a la lista llegará a cada suscriptor como un correo
separado.

Este cambio no requiere ninguna intervención por parte del suscriptor.

Lamentamos todo inconveniente que esta medida haya podido causar.


Saludos,
Chema Cortés
Administrador de la lista python-es@python.org
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Socket SSL

2010-03-17 Por tema Boris Perez Canedo


> Hola 
> 
> Estoy intentando usar SSL sobre un socket que tengo
establecido entre un 
> cliente y un servidor pero no consigo que me funcione.
Me da un error al 
> inicializar el SSL. 
> 
> Comentar que uso
Python 2.5 y uso `socket.ssl()' en vez de 
> `ssl.wrap_socket()'. 
> 
> El error que me da es: 
> socket.sslerror: (1, 'error:140770FC:SSL
routines:SSL23_GET_SERVER_HELLO:unknown 
> protocol') 
> 
> El
c�digo que ejecuto es: 
> 
> # Cliente #

> import socket 
> s = socket.socket(socket.AF_INET,
socket.SOCK_STREAM) 
> s.connect(('localhost', )) 
> ss =
socket.ssl(s) 
> ### 
> 
>
## Servidor ## 
> import socket 
> s =
socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
> s.bind(('', )) 
> s.listen(5) 
> s1, c = s.accept() 
> ss = socket.ssl(s1) 
> ## 
> 
> He intentado a usar
`socket.ssl()' en diferentes sitios como antes y 
> depu�s del `accept()'
y del `connect()' pero no consigo solucionarlo. 
> El error me da cuando intento
empezar a utilizar SSL porque ni siquiera 
> llego a hacer un read/write sobre
el `ss'. 
> 
> �Alguna pista de que estoy haciendo mal? 
> 
> 
> Un saludo y gracias de antemano. 
> -- 
>
Ricardo�

Hola Ricardo
Me parece que no tienes definido el protocolo
ni el certificado que vas a usar usa PROTOCOL_SSLv23 que me parece viene
por defecto para los clientes, almenos eso pasa para xmlrpclib.

Trata
de poner esto en el servidor, a mi me funciono para crear conexiones "seguras"
entre un servidor xmlrpc y en cliente.

#de la ayuda de python 2.6
import socket,
ssl

bindsocket = socket.socket()
bindsocket.bind(('localhost', 8000))
bindsocket.listen(5)

newsocket,
addr = bindsocket.accept()
sslsocket�=ssl.wrap_socket(newsocket,
���
server_side=True,
���
certfile="el
path�a tu certificado",
���
keyfile="el path a tu
llave privada",
���
ssl_version=ssl.PROTOCOL_SSLv23)

usa ahora sslsocket para lo que quieras hacer.

Para generar el
certificado autofirmado y la llave usa el comando openssl

Saludos,
Boris.



---
La mejor vacuna contra el virus A(H1N1) es la higiene personal
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ORM de django vs SQLAlchemy

2010-03-17 Por tema lasizoillo
El día 17 de marzo de 2010 15:39, Jose Caballero
 escribió:
> El hecho de que django aún no de soporte estable a consultas multi-db es un
> dato importante en mi caso. Tengo que lidiar con 3 bases de datos distintas
> a la vez.

Doc de la versión estable de sqlalchemy:
http://www.sqlalchemy.org/docs/05/session.html#partitioning-strategies

Doc de la versión inestable de django:
http://docs.djangoproject.com/en/dev/topics/db/multi-db/#topics-db-multi-db

> El otro factor que es importante para mí, y creo que ahí es donde se nota mi
> inexperiencia, es que necesito crear clases que incluyan no sólo el
> resultado de cada 'query' (por lo que asumo las clases serán en parte una
> réplica de mi 'schema') sino además mis propios métodos para hacer análisis
> estadístico con los resultados de los 'queries', etc. Aunque imagino que
> será igual de fácil en ambos casos, con una simple herencia de clases o
> similar.

No se a que te refieres con "análisis estadístico de los resultados de
los 'queries'". Puedes hacer cosas como las siguientes en ambos ORM's:
 * Extender las clases para crear campos que no existen en las tablas
(ejemplo: calculando datos a través de otros campos).
 * Tener consultas preestablecidas
 * Puedes hacer consultas agregadas (sum, avg, ...)
 * ...

Temas de funciones de ventana como las que están soportadas por
motores como postgresql y oracle no se si se pueden hacer directamente
con alguno de los dos ORM's:
http://developer.postgresql.org/pgdocs/postgres/tutorial-window.html

Si necesitas hacer muchas cosas "raras" con la base de datos, es
posible que un ORM sea más problemático que no usarlo. Pero si vas a
hacer cosas que tu ORM soporta, la base de datos se convierte en una
comodity que puedes reemplazar con facilidad.

>
> En cualquier caso, muchas gracias por tu respuesta. Creo que necesito
> estudiar más antes de poder plantear la pregunta de forma más precisa.
>
>

Ahora voy a hacer comentarios claramente subjetivos:
 * Si vas a usar django, lo mejor es usar el orm de django. Usar
SQLAlchemy puede implicar que el resto de cosas que hacen atractivo a
django no te funcionen.
 * SQLAlchemy es mucho más avanzado y tiene muchas más cosas. Pero
también supone una curva de aprendizaje mayor. Si el ORM de django te
es suficiente, seguramente no te compense pegarse con SQLAlchemy.
 * Django mola. El ciclo de desarrollo con él es brutalmente rápido.

Un saludo:

Javi
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ORM de django vs SQLAlchemy

2010-03-17 Por tema Javier Santana
> El otro factor que es importante para mí, y creo que ahí es donde se nota mi
> inexperiencia, es que necesito crear clases que incluyan no sólo el
> resultado de cada 'query' (por lo que asumo las clases serán en parte una
> réplica de mi 'schema') sino además mis propios métodos para hacer análisis
> estadístico con los resultados de los 'queries', etc. Aunque imagino que
> será igual de fácil en ambos casos, con una simple herencia de clases o
> similar.

Yo creo qu deberías tener en cuenta, si usas django, que la mayoría de
plugins que tiene usan el ORM que trae django y esa es un tema a
valorar.

Además, en django (igual que en SQLObject) se mapea la clase a la
tabla, así que tener métodos de la clase que sirvan para trabajar con
esos datos es simple. De hecho recomiendan hacerlo así (fat models).

Un saludo.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ORM de django vs SQLAlchemy

2010-03-17 Por tema Jose Caballero
El 16 de marzo de 2010 19:54, lasizoillo  escribió:

> El día 16 de marzo de 2010 20:12, Jose Caballero
>  escribió:
> > Hola,
> >
> >
> > necesito una comparación objetiva (no basada en experiencia ni opiniones
> > personales) entre el ORM de django y SQLAlchemy. He buscado un poco en
> > google, pero casi todo lo que encuentro es feedback, gente contando su
> > experiencia personal, etc.
> > Si alguien tiene un link donde pueda ver una comparación técnica entre
> ambos
> > sistemas estaría enormemente agradecido. Si lo encuentro yo antes lo
> mandaré
> > a la lista.
> >
>
> Creo que vas a tener que dar tu información subjetiva de lo que es
> útil en una comparación objetiva. A bote pronto se me ocurren varias
> decenas de cosas a comparar de una manera "objetiva".
>
> Un ejemplo de comparación "objetiva" es hacer un test de velocidad de
> consultas. Ambos orm's tienen una capa de abstracción sobre un acceso
> raw a la base de datos. El raw en ambos casos es mucho más rápido que
> el más abstracto, pero no creo que esto sea relevante porque no es el
> modo de trabajo normal. Aunque compares ambos orm's en modo raw y en
> modo orm, aún queda una prueba que hacer: SQLAlchemy tiene soporte de
> varias bases de datos que Django no tiene en la versión estable
> (posiblemente salga a finales de este mes o a lo largo del siguiente).
> Con soporte multidatabase y un sistema de replicación puedes hacer
> balanceo de consultas. Distintos grados de complejidad de querys
> pueden ofrecer diferentes datos de velocidades también.
>
> Si una cosa tan tonta como ver cuál es más rápido tiene un montón de
> complicaciones, imagina otros detalles como estabilidad, fiabilidad,
> documentación, ...
>
> Si dices que es lo que te interesa de un orm, te prometo ser lo más
> objetivo que pueda dentro de mis capacidades y limitaciones ;-)
>
> Un saludo:
>
> Javi
>


Hola Javi,

veo que tienes razón, y una comparación entre ambos productos no es tan
sencilla. Creo que necesito pensar en la pregunta antes de obtener una
respuesta, o ésta será 42.

El hecho de que django aún no de soporte estable a consultas multi-db es un
dato importante en mi caso. Tengo que lidiar con 3 bases de datos distintas
a la vez.

La velocidad no es, de momento, un factor crucial.

El otro factor que es importante para mí, y creo que ahí es donde se nota mi
inexperiencia, es que necesito crear clases que incluyan no sólo el
resultado de cada 'query' (por lo que asumo las clases serán en parte una
réplica de mi 'schema') sino además mis propios métodos para hacer análisis
estadístico con los resultados de los 'queries', etc. Aunque imagino que
será igual de fácil en ambos casos, con una simple herencia de clases o
similar.

En cualquier caso, muchas gracias por tu respuesta. Creo que necesito
estudiar más antes de poder plantear la pregunta de forma más precisa.


Saludos,
Jose
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] cubo perfecto

2010-03-17 Por tema Medardo Rodriguez (Merchise Group)

# -*- coding: utf-8 -*-

def check_cube(value):
base = int(round(value**(1.0/3), 0))
return (base**3 == value, base)

if __name__ == '__main__':
ok, base = check_cube(input('Número a calcular si es cubo perfecto: '))
if (ok):
print 'Es CUBO PERFECTO de:', base
else:
print 'NO es cubo perfecto'



Saludos
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/