Re: [Python-es] ORM de django vs SQLAlchemy
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
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
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
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
> 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/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
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
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
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
> 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
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
> 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
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
# -*- 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/