2009-02-04 12 views
107

¿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.
¿Cuál es el más fácil de trabajar? ¿Cuál está en desarrollo temprano pero muestra una gran promesa para el futuro?

¿Cuál es la mejor biblioteca de AJAX para Django?

Saludos,
chriss

+0

Cambió el título de su pregunta a algo más relevante. – mmcdole

+4

Habría sido bueno aclarar si esta es una pregunta acerca de las librerías javascript (prototypejs, jquery, dojo ...) o las librerías Django/Python (dajax ...) –

+0

Parece que las respuestas aquí están ahora muy desaprobadas como marcos tales como [Django REST Framework] (http://www.django-rest-framework.org/) y [Tastypie] (http://tastypieapi.org/) parecen ser más activos y ahora preferidos por la mayoría de los desarrolladores, mientras que otros parecen tener problemas con marcos que están menos actualizados en este momento (como [Dajax] (http://dajaxproject.com/)). –

Respuesta

69

le recomiendo 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 del lado del cliente oficial para ASP.NET MVC, así que es bueno saber independientemente del marco de servidor que estés usando.

+0

Nota: Los dos primeros enlaces ya no funcionan. –

+3

Parece que los enlaces vuelven a estar en línea. – Soviut

+3

Incidentemente, nunca construyas una respuesta JSON como '" {'response_text': '"+ post_text +" recieved.'} "' Como en el tercer enlace. ¡Importar 'json' o' simplejson' y usar 'dumps'! – Flash

16

No hay nada sobre Django que haga que cualquiera de las bibliotecas sea más fácil o funcione mejor con el marco. Solo usa el que mejor se adapte a tu 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 en Pinax requieren jQuery. Algunas otras aplicaciones compartidas y fragmentos de código de Django:

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

http://code.google.com/p/donita/

2

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

También es popular rodar 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 usted es un experto en Pythonhead, entonces podría gustarle mochikit, lo cual es criticado por ser demasiado "pitónico". Parece ser el marco de elección para los Turbogears, pero personalmente no he visto ningún proyecto de Django que lo use.

+4

Buena respuesta a excepción de la frase sobre rodar su propio JS. No lo llamaría popular, no lo he visto en aplicaciones de Django que no sean el administrador de Django, y recomiendo que no lo haga. ¿Por qué golpearse la cabeza contra una pared de ladrillos cuando no es necesario? +1 aquí si eso se elimina. –

+0

Bueno, no digo 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é usando js personalizados. –

+0

De hecho, incluso el administrador de Django está cambiando a JQuery: http: //code.djangoproject.com/changeset/12297 –

0

La frase "Mejor AJAX Library" es altamente subjetiva y depende de las preferencias personales, existente sé cómo, requisitos del trabajo, etc., etc.

Aunque prefiero jQuery para (casi) todo, sé que algunas personas que juro por Dojo o ExtJS. Puede haber casos en los que desee utilizar jQuery, pero es posible que se requiera que use ExtJS.

Todo dicho. Usa jQuery.jQuery rocks;)

0

Django realmente no se relaciona con el lado del cliente. Usa lo que sea que te sientas cómodo. Django juega bien con todo en esa área, porque solo lo escribes en las plantillas.

1

Bien, esto podría ser subjetivo porque la definición de "mejor" puede significar diferente para cada individuo. Pero ya que estás trabajando con Django, eso significa que podrás hablar con la sintaxis de Python. Una notable biblioteca de Javascript que no se expone demasiado es Mochikit. Lo bueno de esto es que tiene una sintaxis que le resulta familiar al programador de Python (porque el creador es un programador de Python). También ha escrito bastante bien la documentación. TurboGears out-of-the-box es compatible con Mochikit.

4

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

Personalmente, me gusta lo que jQuery puede hacer con determinadas cantidades 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 accesos directos para escribir menos código y evita tratar de hacer que javascript se parezca a algo más.

Dojo intenta hacer que JavaScript parezca Java y desde mi experiencia es bastante lento. Tiene algunos widgets bonitos y una implementación 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 de javascript (o viceversa).

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

62

Creo que esto puede ser lo que usted está buscando:

http://dajaxproject.com/

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

ACTUALIZACIÓN:

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

Al final, en su mayoría funcionan igual.

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

UDATE2:

Este consejo es muy antigua. Probablemente debería investigar otras soluciones.

+2

Me sorprende que esto no haya sido votado. Se ve muy bien. Buceando ahora – Flowpoke

+0

Ahora es 1.5 años más tarde, y el proyecto parece que no ha tenido muchas actualizaciones desde entonces. ¿Sigue siendo una buena recomendación? –

+0

@TimSaylor Yo diría que DajaxIce sigue siendo una biblioteca bastante sólida si este es el tipo de solución que estás buscando: una forma absolutamente simple de crear puntos finales arbitrarios ajax que puedes consumir en JavaScript. Personalmente, no utilizaría la versión regular de Dajax mientras terminas escribiendo mucho código de presentación en tus funciones de visualización. Dicho esto, hay una gran cantidad 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). –

7

Pedido Dajax:

Dajax Proyecto

Fácil de usar bibliotecas AJAX para Django

bibliotecas rápido, fácil y ligero para implementar AJAX dentro de sus proyectos de Django . Listo para usar en 5 minutos.

Dajax es una poderosa herramienta para desarrollar fácil y rápidamente super-asíncrono lógica presentación en aplicaciones web usando Python y casi no hay líneas de JS código fuente.

Es compatible con hasta cuatro de los marcos de JS más populares : Prototype, jQuery, Dojo y mootols.

+0

Después de publicar esta respuesta, noté que alguien ya había mencionado Dajax, pero que la respuesta no describe lo que ofrece la biblioteca (y no pudo comentarlo) – denysonique

+1

Y si revisa los LECTOS de Github, encontrará "¿Debo usar django-dajax o django-dajaxice? En una palabra, No. Creé estos proyectos Hace 4 años era una buena herramienta para resolver un problema específico que tenía en ese momento. Usar estos proyectos en estos días es una mala idea ". – jwd630

1

Si es necesario trabajar con AJAX en sus proyectos de Django con muy poco de instalar y fácil de usar, mi oferta es:

django-ajax (Github, Pypi)

rápido, bibliotecas AJAX flexibles y fáciles de usar para proyectos django. Contiene decorador ajax, middleware ajax, accesos directos y más.

Cuestiones relacionadas