Discussion:
Programación Web sin utilizar un ORM con Python.
(too old to reply)
Jean Chassoul
2009-08-15 02:18:35 UTC
Permalink
Hola,

Compañeros de la lista, les tengo una consulta y espero que me puedan
orientar un poco si esta a su alcancé.

Actualmente estoy desarrollando una aplicación que me genere varios reportes
de una base de datos que tengo, a nivel de base de datos ya tengo
absolutamente todos los reportes utilizando vistas o bien tengo mis querys
con los que saco la información que necesito.

Los datos ingresan a la base de datos por un programa externo a mi
aplicación, mi aplicación simplemente deberá generar los reportes y realizar
alguno que otro INSERT en la base de datos.

Lo que intento explicar con esta introducción es que ocupo programar la
interfaz de usuario con la cual hacer uso de mi base de datos, querys,
vistas etc.. uno de los requerimientos que me he puesto como meta es
programar este frontend o interfaz en una aplicación Web y por supuesto
utilizar de ser posible Python para esta tarea.

A raíz de eso empecé a investigar un poco sobre los frameworks web que
existen en Python, ya había escuchado hablar de Django hace un poco mas de
un año y después de varios buenos reviews pensé (supuse) que seria mi mejor
opción, al final termine aprendiendo algunas cosas de Django pero sin
embargo he llegado a un punto en el que me veo obligado a re-evaluar la
posibilidad de utilizar python o uno de sus frameworks web, verán por lo que
he aprendido en mi poca experiencia con Django y como algunos sabrán es un
framework que utilizar un ORM, el problema como se habrán dando cuenta es
que yo ya tengo mi base de datos en producción e incluso ya genero los
reportes que deberá de generar la aplicación final a base de vistas y querys
que ya tengo programados y funcionan a la perfección.

Tomando eso en cuenta, creo que en mi caso no me es tan funcional utilizar
un framework web que siga el modelo MVC o bien que utilice obligatoriamente
un ORM. Como practicamente solo conozco Django, ( y no muy bien por el
momento ... ) les pido sus recomendaciones en este caso.

Cuales son mis opciones con Python para realizar la aplicación que me
propongo? tal ves alguna librería o bien otro framework, les agradezco sus
comentarios y la posible ayuda que me puedan brindar.

Saludos y muchas gracias de antemano por sus respuestas.
Gonzalo Sainz Trápaga
2009-08-15 02:31:53 UTC
Permalink
Hola,

Django es bastante desacoplado y te permite no utilizar el ORM (es
decir, hacer tus consultas SQL a mano). La desventaja que tiene esto
es que gran parte de la "amigabilidad" del framework proviene de lo
bien que se integra con su ORM (por ejemplo, te genera las vistas de
administración y edición automáticamente). Si lo que querés es generar
reportes, en realidad lo único que vas a usar es el sistema de
plantillas de Django.

Todo esto es perfectamente posible, y no creo que haya otro framework
que sea particularmente más apto para la tarea (a cualquier framework
MVC, si le sacás el ORM, pierde la comodidad que te da la
integración). Acá te explican como hacer consultas en SQL "a pelo" en
Django:
http://www.djangobook.com/en/2.0/chapter10/#cn115

Saludos ;)
Carlos Marcelo Cabrera
2009-08-15 06:43:32 UTC
Permalink
El Fri, 14 Aug 2009 23:31:53 -0300
Post by Gonzalo Sainz Trápaga
Django es bastante desacoplado y te permite no utilizar el ORM (es
decir, hacer tus consultas SQL a mano). La desventaja que tiene esto
es que gran parte de la "amigabilidad" del framework proviene de lo
bien que se integra con su ORM (por ejemplo, te genera las vistas de
administración y edición automáticamente). Si lo que querés es generar
reportes, en realidad lo único que vas a usar es el sistema de
plantillas de Django.
Bueno, yo lo haría con Turbogears2 que permite mucha más modularidad y
se puede usar sin ORM, incluso sin base de datos, sin sacrificar nada
de su funcionalidad.

(soy un ex-djanguero)
--
/* ************************************************************
Carlos Marcelo Cabrera, alias "Point to null"
Medios de contacto adicionales:
Weblog: http://pointtonull.esdebian.org
Jabber: point_to_null-r/***@public.gmane.org
Yahoo: dxm84ar-/***@public.gmane.org
ICQ: 303014677
************************************************************ */
n***@public.gmane.org
2009-08-15 03:41:09 UTC
Permalink
Post by Jean Chassoul
Hola,
Compañeros de la lista, les tengo una consulta y espero que me puedan
orientar un poco si esta a su alcancé.
Actualmente estoy desarrollando una aplicación que me genere varios reportes
de una base de datos que tengo, a nivel de base de datos ya tengo
absolutamente todos los reportes utilizando vistas o bien tengo mis querys
con los que saco la información que necesito.
Cuales son mis opciones con Python para realizar la aplicación que me
propongo? tal ves alguna librería o bien otro framework, les agradezco sus
comentarios y la posible ayuda que me puedan brindar.
Jean,

Yo desde hace un tiempo estoy usando Django, con ánimo de, por una vez en
la vida, aprender lo que usan todos : )

Hasta hace poco, todos mis sitios los armaba usando PyPa[0], que es una
librería chiquita que programé hace tiempo y consiste en un sistema
sencillo de templates y dos o tres cositas más (algo de manejo de sesiones
de usuarios y una simplificación trivial del acceso a MySQL, la base que
siempre usé).

Lo que a mí me gusta de PyPa es que no tenés que aprender un nuevo
lenguaje de templates porque toda la lógica de tus vistas se maneja desde
Python. Lo único que hacés en los templates es marcar secciones
(anidables) y contenedores de variables, que luego vas a usar desde python
para decidir qué cosas mostrás, qué cosas repetís y con qué valores.

Suponiendo que querés generar una vista simple de un query que ya tenés
hecho, hacés algo como:
my_data = db.query('SELECT...')
y "llenás" tu template con:
for row in my_data:
my_pypa_template.foo_section.set_vars(row)
my_pypa_template.foo_section.instantiate()
return my_pypa_template.render()

La sintaxis de los templates es sencilla, la documentación es medio triste
(está adentro del tar.gz[1]), pero como es tan simple de usar, seguramente
te alcanzará.

Si decidís probarlo y necesitás algo de ayuda para empezar o ejemplos de
cosas que no están documentadas, chiflame.


Saludos,

NicoEchániz

[0] https://gna.org/projects/pypa
[1] http://download.gna.org/pypa/pypa-0.14.tar.gz
Jose Jachuf
2009-08-15 12:54:04 UTC
Permalink
Post by Jean Chassoul
Hola,
Hola Jean,
Post by Jean Chassoul
Actualmente estoy desarrollando una aplicación que me genere varios reportes
de una base de datos que tengo, a nivel de base de datos ya tengo
absolutamente todos los reportes utilizando vistas o bien tengo mis querys
con los que saco la información que necesito.
Los datos ingresan a la base de datos por un programa externo a mi
aplicación, mi aplicación simplemente deberá generar los reportes y realizar
alguno que otro INSERT en la base de datos.
Yo estoy realizando exactamente lo mismo que vos utilizando web2py. En
mi caso es una base de datos enorme, pero no hay necesidad de definir
toda la estructura en el modelo, una opción es definir solamente la
parte que te interese; la otra es escribir sql "puro" y en el modelo
no definis nada. La verdad me ha resultado muy simple hacerlo con
web2py.
Post by Jean Chassoul
Saludos y muchas gracias de antemano por sus respuestas.
Saludos
Jose
SAn
2009-08-15 17:02:18 UTC
Permalink
Post by Jean Chassoul
Hola,
Compañeros de la lista, les tengo una consulta y espero que me puedan
orientar un poco si esta a su alcancé.
Actualmente estoy desarrollando una aplicación que me genere varios reportes
de una base de datos que tengo, a nivel de base de datos ya tengo
absolutamente todos los reportes utilizando vistas o bien tengo mis querys
con los que saco la información que necesito.
Los datos ingresan a la base de datos por un programa externo a mi
aplicación, mi aplicación simplemente deberá generar los reportes y realizar
alguno que otro INSERT en la base de datos.
Lo que intento explicar con esta introducción es que ocupo programar la
interfaz de usuario con la cual hacer uso de mi base de datos, querys,
vistas etc.. uno de los requerimientos que me he puesto como meta es
programar este frontend o interfaz en una aplicación Web y por supuesto
utilizar de ser posible Python para esta tarea.
A raíz de eso empecé a investigar un poco sobre los frameworks web que
existen en Python, ya había escuchado hablar de Django hace un poco mas de
un año y después de varios buenos reviews pensé (supuse) que seria mi mejor
opción, al final termine aprendiendo algunas cosas de Django pero sin
embargo he llegado a un punto en el que me veo obligado a re-evaluar la
posibilidad de utilizar python o uno de sus frameworks web, verán por lo que
he aprendido en mi poca experiencia con Django y como algunos sabrán es un
framework que utilizar un ORM, el problema como se habrán dando cuenta es
que yo ya tengo mi base de datos en producción e incluso ya genero los
reportes que deberá de generar la aplicación final a base de vistas y querys
que ya tengo programados y funcionan a la perfección.
Tomando eso en cuenta, creo que en mi caso no me es tan funcional utilizar
un framework web que siga el modelo MVC o bien que utilice obligatoriamente
un ORM. Como practicamente solo conozco Django, ( y no muy bien por el
momento ... ) les pido sus recomendaciones en este caso.
En mi opinion justamente usar el ORM de Django seria algo que te
conviene hacer. Que tengas una base de datos no creada con Django no
es, en principio, un problema.

Echale una mirada a
http://docs.djangoproject.com/en/dev/howto/legacy-databases/#howto-legacy-databases

Y busca en google sobre legacy database y django.
Tambien podrias mirar south: http://south.aeracode.org/

Se que hay otras cosas por ahi, incluso un par de "tutoriales de blog".

saludos y suerte
SAn
Sebastian Bassi
2009-08-15 18:37:55 UTC
Permalink
Post by Jean Chassoul
A raíz de eso empecé a investigar un poco sobre los frameworks web que
existen en Python, ya había escuchado hablar de Django hace un poco mas de
un año y después de varios buenos reviews pensé (supuse) que seria mi mejor
....

Se me ocurre que podrias explorar algo de un nivel un poquito mas bajo
pero que por ahi se adapta mejor a tu situación, por ejemplo un
middleware en WSGI, como los que están en esta lista:
http://www.wsgi.org/wsgi/Middleware_and_Utilities
De ahi usé Yaro y estaba bueno, pero probá por tu cuenta a ver cual se
adapta mas a lo que queres hacer y a tu gusto.
Jean Chassoul
2009-08-21 16:40:43 UTC
Permalink
Hola,

Muchas gracias a todos por sus respuestas, les cuento que como ya he tendido
alguna que otra experiencia con Django voy a intentar seguir probando con
dicho framework utilizando los consejos que me han dado.

Voy a ver como me va y cualquier cosa les comento los avances del proyecto,
de nuevo muchas gracias a todos por su tiempo, consejos y respuestas.

Saludos.
Post by Sebastian Bassi
Post by Jean Chassoul
A raíz de eso empecé a investigar un poco sobre los frameworks web que
existen en Python, ya había escuchado hablar de Django hace un poco mas
de
Post by Jean Chassoul
un año y después de varios buenos reviews pensé (supuse) que seria mi
mejor
....
Se me ocurre que podrias explorar algo de un nivel un poquito mas bajo
pero que por ahi se adapta mejor a tu situación, por ejemplo un
http://www.wsgi.org/wsgi/Middleware_and_Utilities
De ahi usé Yaro y estaba bueno, pero probá por tu cuenta a ver cual se
adapta mas a lo que queres hacer y a tu gusto.
---------------------------------------------------------------------
PyAr - Python Argentina - Sitio web: http://www.python.com.ar/
Continue reading on narkive:
Loading...