¿Cuál es la mejor biblioteca AJAX para Django? [cerrado]

108

¿Qué biblioteca AJAX es la mejor para django y por qué?
Buscando uno con una gran base de datos de tutoriales, libros y documentación detallada.
¿Con cuál es más fácil trabajar? ¿Cuál está en desarrollo temprano pero es muy prometedor para el futuro?

Saludos,
Chriss

chriss
fuente
Cambió el título de su pregunta por algo más relevante.
mmcdole
4
Hubiera sido bueno aclarar si esta es una pregunta sobre bibliotecas javascript (prototypejs, jquery, dojo ...) o bibliotecas Django / Python (dajax ...)
Steve Bennett
Parece que las respuestas por aquí ahora están muy desaprobadas, ya que marcos como Django REST Framework y Tastypie parecen ser más activos y ahora los preferidos por la mayoría de los desarrolladores, mientras que otros parecen tener problemas con marcos que se mantienen menos en este momento (como Dajax ).
Paul-Sebastian Manole

Respuestas:

70

Recomiendo mucho jQuery . Hay varios tutoriales sobre cómo implementarlo.

http://lethain.com/entry/2007/dec/11/two-faced-django-part-5-jquery-ajax/

http://lethain.com/entry/2007/dec/01/using-jquery-django-autocomplete-fields/

http://vincentxu.net/minimal-ajax-in-django-with-jquery-post

NOTA: Microsoft también anunció hace un tiempo que jQuery sería el marco oficial del lado del cliente para ASP.NET MVC, por lo que es bueno saberlo independientemente del marco del lado del servidor que esté utilizando.

Soviut
fuente
Nota: Los dos primeros enlaces ya no funcionan.
Garrett Hyde
3
Los enlaces parecen estar de nuevo en línea.
Soviut
3
Por cierto, nunca construyas una respuesta JSON "{'response_text': '"+post_text+" recieved.'}"como en el tercer enlace. Importar jsono simplejsony usar dumps!
Flash
2
Aunque jQuery es fantástico, lamentablemente, Django no tiene una integración explícita (fuera del administrador) con sus formularios o vistas.
Cerin
2
El último enlace ya no funciona.
svenwildermann
62

Creo que esto puede ser lo que estás buscando: django-dajax

Bastante bien documentado. API simple. Muy limpio y agradable. Planeo usarlo más en algunos de mis proyectos. Es independiente de la biblioteca JS y funciona bien con jQuery si eso es lo tuyo.

ACTUALIZAR:

Otras soluciones similares a dajaxice, pero no dajax estándar.

Al final, en su mayoría funcionan igual.

  • Defina / incluya algunas rutas URL predefinidas.
  • Registre modelos / vistas / funciones que se utilizarán como fuentes de datos.
  • Disfrutar.

UDATE2:

Este consejo es muy antiguo. Probablemente debería buscar otras soluciones.

Derek Reynolds
fuente
2
Me sorprende que esto no haya obtenido la votación. Se ve muy bien. Zambullirse ahora.
Ben Keating
Han pasado 1,5 años y el proyecto parece que no ha tenido muchas actualizaciones desde entonces. ¿Sigue siendo una buena recomendación?
Tim Saylor
@TimSaylor Diría que DajaxIce sigue siendo una biblioteca bastante sólida si este es el tipo de solución que está buscando: una forma muy simple de crear puntos finales arbitrarios ajax que puede consumir en javascript. Personalmente, no usaría la biblioteca Dajax normal ya que terminas escribiendo mucho código de presentación en tus funciones de vista. Dicho esto, hay una planta de bibliotecas sólidas disponibles para crear puntos finales RESTful automáticamente a partir de sus modelos (u otros datos arbitrarios). (Actualizaré mi respuesta con enlaces).
Derek Reynolds
super lib para implementar ajax en django
Surya
1
La página de Github para Dajax ahora dice Should I use django-dajaxice?-In a word, No. I created this project 4 years ago as a cool tool in order to solve one specific problem I had at that time
usuario
16

No hay nada en Django que haga que las bibliotecas sean más fáciles o que funcionen mejor con el marco. Simplemente use el que mejor se adapte a su cerebro.

Habiendo dicho eso, mi sensación es que jQuery es más popular en el mundo de Django y es lo que yo personalmente uso. En particular, muchas de las aplicaciones de Pinax requieren jQuery. Algunas otras aplicaciones compartidas y fragmentos de código para Django:

http://www.djangosnippets.org/tags/jquery/
http://code.google.com/p/django-ajax-validation/
http://code.google.com/p/django-todo/
http: //code.google.com/p/donita/

Daniel Naab
fuente
7

Pedido Dajax :

Proyecto Dajax

Bibliotecas AJAX fáciles de usar para Django

Bibliotecas rápidas, fáciles y ligeras para implementar AJAX dentro de sus proyectos de django. Listo para usar en 5 minutos.

Dajax es una herramienta poderosa para desarrollar de manera fácil y súper rápida lógica de presentación asincrónica en aplicaciones web usando Python y casi sin líneas de código fuente JS.

Admite hasta cuatro de los frameworks JS más populares: Prototype, jQuery, Dojo y mootols.

denysonique
fuente
Después de publicar esta respuesta, noté que alguien ya mencionó Dajax, pero esa respuesta no describe lo que ofrece la biblioteca (y no
pude
1
Y si revisa los READMEs de Github, encontrará "¿Debería usar django-dajax o django-dajaxice? En una palabra, No. Creé estos proyectos hace 4 años como una herramienta genial para resolver un problema específico que tenía en ese momento . Estos días utilizar estos proyectos es una mala idea ".
jwd630
4

He utilizado con éxito jquery, YUI y Dojo en diferentes proyectos de django. No hay nada sobre ninguno de los que lo hizo mejor para usar con django específicamente. Estoy de acuerdo con jpartogy en que mochikit puede ajustarse a django más que cualquier otro solo por la API "pythonic" (retorcida). Realmente depende de lo que esté buscando en un marco ajax.

Personalmente, me gusta lo que jQuery puede hacer con cantidades determinadas de código, pero el mayor desafío al escribir código jQuery es hacerlo legible.

YUI es mucho más detallado que otros marcos porque establece una convención para usar espacios de nombres, pero hay atajos para escribir menos código y evita intentar hacer que JavaScript se vea como otra cosa.

Dojo intenta hacer que javascript se parezca a Java y, según mi experiencia, es bastante lento. Tiene algunos widgets agradables y una implementación de javascript del lenguaje de plantillas django (que es bastante útil incluso fuera de los proyectos de django).

Personalmente, evito prototipos y mootools porque pueden romper otro código javascript (o viceversa).

Si eres nuevo en javascript y ajax, te recomendaría jQuery porque es el más fácil para empezar. Pero no espero que ningún marco js se integre con django principalmente porque realmente no hay necesidad de eso.

Vasil
fuente
2

+1 a Soviut y Daniel por buenas respuestas. Jquery es un buen framework. Además de Pinax, un par de otras aplicaciones "grandes" de Django lo usan: Satchmo y Review Board (que cambiaron de otro marco ... mootools IIRC).

También es popular lanzar su propio Javascript sin usar ningún marco, por ejemplo, el administrador de Django.

La única otra sugerencia que podría hacer es que, si eres un Pythonhead muy experimentado, es posible que te guste mochikit, que es objeto de algunas críticas por ser demasiado "pitónico". Parece ser el marco elegido por Turbogears, pero personalmente no he visto ningún proyecto de Django que lo use.

Van Gale
fuente
4
Buena respuesta, excepto por la frase sobre rodar tu propio JS. No lo llamaría popular, no lo he visto en aplicaciones de Django que no sean el administrador de Django, y lo recomiendo. ¿Por qué golpearte la cabeza contra una pared de ladrillos cuando no es necesario? +1 aquí si se elimina.
Carl Meyer
Bueno, no estoy diciendo que sea una buena idea :) Mi javascript es lo suficientemente débil como para no tener otra opción, así que uso jquery. Lo mencioné porque hice una encuesta de 4-5 de los sitios en la parte superior de la lista en djangosites.com y los encontré todos usando js personalizados.
Van Gale
De hecho, incluso el administrador de Django está cambiando a JQuery: code.djangoproject.com/changeset/12297
Chris Lawlor
1

Bueno, esto podría ser subjetivo porque la definición de "mejor" puede significar algo diferente para cada individuo. Pero dado que está trabajando con Django, eso significa que dominará la sintaxis de Python. Una biblioteca de JavaScript notable que no se expone demasiado es Mochikit . Lo bueno de esto es que tiene una sintaxis que es familiar para el programador de Python (porque el creador es un programador de Python). También tiene documentación bastante bien escrita. TurboGears es compatible con Mochikit.

Joshua Partogi
fuente
1

Si necesita trabajar con AJAX en sus proyectos de django con muy poca configuración y fácil de usar, mi oferta es:

django-ajax ( Github , Pypi )

Bibliotecas AJAX rápidas, flexibles y fáciles de usar para proyectos de django. Contiene decorador ajax, middleware ajax, atajos y más.

yceruto
fuente
0

La frase "Mejor biblioteca AJAX" es muy subjetiva y depende de las preferencias personales, los conocimientos técnicos existentes, los requisitos del trabajo, etc.

Si bien prefiero jQuery para (casi) todo, conozco a algunas personas que juran por Dojo o ExtJS. Puede haber un caso en el que desee usar jQuery, pero los requisitos pueden dictar que use ExtJS.

Todo dicho. Utilice jQuery. rocas jQuery;)

Mir Nazim
fuente
0

Django realmente no se relaciona con el lado del cliente. Use lo que le resulte cómodo. Django juega bien con todo en esa área, porque simplemente lo escribes en las plantillas.

sebnow
fuente