[pyar] Arquitectura cliente-servidor, REST y programación orientada a objetos

Ariel Camino arielcamino en gmail.com
Mar Feb 26 15:54:47 ART 2013


El 23/02/13 21:32, Diego Gaustein escribió:
> Hola lista:
> 
> hace un tiempo desarrollé un sistema en Python, usando PySide y
> SQLAlchemy. Los modelos tienen algunas complejidades, muchos foreign
> keys, relaciones m2m autoreferenciales y algunas con tablas intermedias.
> De todos modos en SQLAlchemy resulto todo bastante fácil, y los
> algoritmos quedaron prolijos.
> Ahora me veo en la necesidad de separar el sistema y hacerlo
> cliente-servidor, de modo que sólo el servidor tenga contacto directo
> con la base de datos. Si bien hay un par de soluciones que permiten
> compartir objetos python directamente por la red, pareció mejor idea
> hacer el servidor en Django y exponer un API REST. Estuve usando
> django-rest-framework y parece andar muy bien.
> El problema surge a la hora de consumir los datos en el cliente. Ya no
> recibo objetos de una clase en particular, si no diccionarios con los
> atributos que necesito. Un ejemplo simple sería el de formularios que
> requieren de otros formularios:
> 
> [ { 'nombre': 'formulario1', 'id': 1, 'completado': True}, { 'nombre':
> 'formulario2', 'id': 2, 'requeridos': [1] } ]
> 
> Si quería saber, en SQLAlchemy, si los requeridos de uno formulario
> estaban completados, podía hacer algo similar a:
> all( ( form.completado for form in formulario2.requeridos ) )
> Usando la estructura de diccionario, pierdo los enlaces entre los
> distintos objetos, por lo que tendría que reescribir casi todos los
> algoritmos, y me imagino que tiene que haber algo mejor. ¿cómo puedo
> hacer para seguir trabajando en un modo orientado a objetos? ¿conocen
> algún framework? ¿cómo hacen las aplicaciones móviles complejas (por ej,
> facebook) para resolver esto?
> 
> Gracias! saludos,
> Diego
> 
> 
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
> 

Hola Diego, te recomiendo que estudies algún framework de javascript
MVC, y lo conectes contra tu API REST del backend.

Podes usar por ejemplo backbone.js y tastypie, hace unos días estuvimos
hablando sobre esto en la lista:
http://thread.gmane.org/gmane.org.user-groups.python.argentina/59102
https://github.com/PaulUithol/backbone-tastypie

o backbone.js contra django-rest-framework.

Luego podrías utilizar esta extensión para crear un form basado en tu
modelo:

https://github.com/powmedia/backbone-forms

Saludos,
-- 
Ariel Camino



More information about the pyar mailing list