[Python-es] Django templates (template tags con ajax)

66 views
Skip to first unread message

Antonio Mas

unread,
May 7, 2013, 10:42:49 AM5/7/13
to pyth...@python.org
Queridos compañeros culebreros, tengo una duda existencial y busco consejo de gente que ha reptado más que yo por estos lares.

El tema es que estoy haciendo mis "pinitos" web con python / django (1.5) y estoy buscando la mejor forma de cargar información de forma asíncrona con django.

Después de leer opiniones y buscar cuales serían las best practices para estas tareas no me queda claro nada.

  • Para hacer la carga de información se podrían usar render_to_response en las vistas, y un $().load() pero he leído que esto penaliza en tiempo de carga y ancho de banda.
  • Se podrían usar template tags para renderizar la información en otros templates .
  • Otra opción podría ser pasar del sistema de templating de django, generar un api restful (a lo mejor utilizando tastypie) y generar las vistas con alguna librería javascript como mustache o underscore. El problema aquí es que no se si es como mancillar el patrón MVT de django ...


Entonces,
¿Alguien podría sugerir qué opciones son mejores, los casos en los que elegir alguna u otra y cual sería imposible porque me he columpiado como un campeón?


Muchas gracias

Un saludo
Toni

Diego Uribe Gamez

unread,
May 7, 2013, 10:54:19 AM5/7/13
to La lista de python en castellano

Este tema no es de django-es? Creo qir en python hay formas de cargar, pero la eficiencia la tiene nodejs con socketio, si a eso te refieres esta clase de necesidad, yo lo trabajo así y me funciona bien.

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

Antonio Mas

unread,
May 7, 2013, 10:57:31 AM5/7/13
to pyth...@python.org
Ups, perdón, traslado la cuestión a la otra lista...
... y me registro de paso :)


Alberto Chamorro

unread,
May 7, 2013, 11:29:33 AM5/7/13
to La lista de python en castellano

Aqui tienes una app para django para trabajar con ajax:

http://www.dajaxproject.com

Espero te sirva

Diego Uribe Gamez

unread,
May 7, 2013, 11:41:38 AM5/7/13
to La lista de python en castellano
a mi no me gusto ese proyecto, me gusto mas hacerlo a mano:

<input type="button" onclick="mi_funcion()">

<script type="text/javascript" src="/js/jquery.json-2.4.min.js"></script>

function mi_funcion(){
            var variablejson = {data: 'data', data2: 'data2'};
            $.ajax({
                url:         '/comunica/',
                type:        'POST',
                contentType: 'application/json; charset=utf-8',
                data:        $.toJSON(variablejson),
                dataType:    'text',
                success: function(result) {
                    alert(result);
                }
            });
        }


la url

url(r'^cominica/$', info_comunica),


la vista:

@csrf_exempt
@login_required
def info_comunica(request):
        if request.method == 'POST':
            # cargar variable id json desde el javascript
            data         = simplejson.loads(request.body)
            datauno_web = data['data']
            datados_web  = data['data2']
            return HttpResponse(datauno_web)

como resultado te muestra una alerta de datauno_web en el navegador


2013/5/7 Alberto Chamorro <a.chamo...@gmail.com>

Aqui tienes una app para django para trabajar con ajax:

http://www.dajaxproject.com

Espero te sirva


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




--
  Diego Alonso Uribe Gamez

Desarrollador web

Twitter: @DiegoUG

Google+: http://gplus.to/diegoug



Antonio Mas

unread,
May 7, 2013, 1:18:12 PM5/7/13
to pyth...@python.org
Lo que me interesa más que nada es saber qué método es más "fino" a la hora de renderizar la información que recuperas de la vista sobre los templates.

Con render_to_response() en la vista y $().load() de jquery se podría renderizar un template directamente a un div por ejemplo.

Cuando me puse a trastear acabé por montar un api restful, devolviendo respuestas Json y gestionando las vistas con Backbone, pasando un poco de los  templates de django, pero me sentía "sucio", como que le estaba poniendo los cuernos al framework, y quería saber si estaba aceptada la bigamia de tecnologías en general, si se consideraba esto mala práctica etc...

No conocía el proyecto dajax, no lo he mirado mucho pero da la impresión que monta template tags por debajo y te abstrae de esa tarea no?

Gracias por las respuestas

Chema Cortes

unread,
May 7, 2013, 6:49:50 PM5/7/13
to La lista de python en castellano
El 7 de mayo de 2013 19:18, Antonio Mas <dquij...@gmail.com> escribió:
Lo que me interesa más que nada es saber qué método es más "fino" a la hora de renderizar la información que recuperas de la vista sobre los templates.

Con render_to_response() en la vista y $().load() de jquery se podría renderizar un template directamente a un div por ejemplo.

Cuando me puse a trastear acabé por montar un api restful, devolviendo respuestas Json y gestionando las vistas con Backbone, pasando un poco de los  templates de django, pero me sentía "sucio", como que le estaba poniendo los cuernos al framework, y quería saber si estaba aceptada la bigamia de tecnologías en general, si se consideraba esto mala práctica etc...

Django no tiene bien solucionado el tema de ajax. No sólo es renderizar la vista en un div, también necesitas normalmente que toda interacción dentro de ese div sea gestionado a través de ajax. No es deseable, por ejemplo, que al hacer un click en un enlace del div o interacciones con un formulario se rompa el "enjaulamiento" donde se encuentra. Quieras o no, vas a tener que programar buena parte en javascript (o similares) sin más remedio.

En este aspecto, web2py lo tiene mucho mejor solucionado a través de sus "componentes" y sin necesidad de programar nada en javascript:

  http://web2py.com/books/default/chapter/29/12




--
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales
Reply all
Reply to author
Forward
0 new messages