Qual è la migliore libreria AJAX per Django? [chiuso]


108

Quale libreria AJAX è la migliore per django e perché?
Alla ricerca di uno con un ampio database di tutorial, libri e documentazione dettagliata.
Qual è il più facile con cui lavorare? Quale è in fase di sviluppo iniziale ma mostra grandi promesse per il futuro?

Saluti,
Chriss


Modificato il titolo della tua domanda in qualcosa di più pertinente.
mmcdole

4
Sarebbe stato utile chiarire se questa è una domanda sulle librerie javascript (prototypejs, jquery, dojo ...) o sulle librerie Django / Python (dajax ...)
Steve Bennett

Sembra che le risposte qui intorno siano ora altamente deprecate poiché framework come Django REST Framework e Tastypie sembrano essere più attivi e ora preferiti dalla maggior parte degli sviluppatori mentre altri sembrano avere problemi con framework che sono meno mantenuti al momento (come Dajax ).
Paul-Sebastian Manole

Risposte:


70

Consiglio vivamente jQuery . Ci sono diversi tutorial su come 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 ha anche annunciato qualche tempo fa che jQuery sarebbe stato il framework lato client ufficiale per ASP.NET MVC, quindi è bene sapere indipendentemente dal framework lato server che stai utilizzando.


Nota: i primi due collegamenti non funzionano più.
Garrett Hyde

3
I collegamenti sembrano essere tornati online.
Soviut

3
Per inciso, non costruire mai una risposta JSON "{'response_text': '"+post_text+" recieved.'}"come nel terzo collegamento. Importa jsono simplejsone usa dumps!
Flash

2
Sebbene jQuery sia fantastico, purtroppo Django non ha alcuna integrazione esplicita (al di fuori dell'amministratore) con i suoi moduli o viste.
Cerin

2
L'ultimo collegamento non funziona più.
svenwildermann

62

Penso che questo possa essere quello che stai cercando: django-dajax

Abbastanza ben documentato. API semplice. Molto pulito e carino. Ho intenzione di usarlo di più in alcuni dei miei progetti. È indipendente dalla libreria JS e funziona bene con jQuery se ti piace.

AGGIORNARE:

Altre soluzioni simili a dajaxice, ma non standard dajax.

Alla fine per lo più funzionano allo stesso modo.

  • Definisci / includi alcuni percorsi URL predefiniti.
  • Registrare modelli / viste / funzioni che verranno utilizzati come origini dati.
  • Godere.

UDATE2:

Questo consiglio è super vecchio. Probabilmente dovrebbe cercare altre soluzioni.


2
Sono sorpreso che questo non abbia ottenuto il voto. Sembra fantastico. Immergiti adesso.
Ben Keating

Sono passati un anno e mezzo e il progetto sembra non abbia avuto molti aggiornamenti da allora. È ancora una buona raccomandazione?
Tim Saylor

@TimSaylor Direi che DajaxIce è ancora una libreria piuttosto solida se questo è il tipo di soluzione che stai cercando: un modo semplice e morto per creare endpoint ajax arbitrari che puoi utilizzare in javascript. Personalmente non userei la normale libreria Dajax dato che finisci per scrivere molto codice di presentazione nelle funzioni di visualizzazione. Detto questo, sono disponibili numerose librerie solide per la creazione automatica di endpoint RESTful dai modelli (o altri dati arbitrari). (Aggiornerò la mia risposta con i link).
Derek Reynolds,

super lib per l'implementazione di ajax in django
Surya

1
La pagina Github per Dajax ora 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
utente

16

Non c'è niente in Django che renda le librerie più facili o che funzionino meglio con il framework. Usa quello che si adatta meglio al tuo cervello.

Detto questo, la mia sensazione è che jQuery sia più popolare nel mondo Django ed è quello che uso personalmente. In particolare, molte delle app in Pinax richiedono jQuery. Alcune altre app condivise e snippet di codice per 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/



7

Checkout Dajax :

Progetto Dajax

Librerie AJAX facili da usare per Django

Librerie veloci, facili e leggere per implementare AJAX nei tuoi progetti django. Pronto all'uso in 5 minuti.

Dajax è un potente strumento per sviluppare facilmente e in modo super veloce la logica di presentazione asincrona nelle applicazioni web utilizzando Python e quasi nessuna riga di codice sorgente JS.

Supporta fino a quattro dei framework JS più popolari: Prototype, jQuery, Dojo e mootols.


Dopo aver pubblicato questa risposta ho notato che qualcuno ha già menzionato Dajax, ma quella risposta non descrive cosa offre la biblioteca (e non è stato in grado di commentarla)
denysonique

1
E se controlli i README di Github trovi "Dovrei usare django-dajax o django-dajaxice? In una parola, No. Ho creato questi progetti 4 anni fa come uno strumento interessante per risolvere un problema specifico che avevo in quel momento . In questi giorni utilizzare questi progetti è una cattiva idea ".
jwd630

4

Ho utilizzato con successo jquery, YUI e Dojo su diversi progetti django. Non c'è niente in nessuno di quelli che lo hanno reso migliore da usare specificamente con django. Sono d'accordo con jpartogy sul fatto che il mochikit possa adattarsi a django più di ogni altro solo a causa dell'API "pitonica" (tipo contorto). Dipende davvero da cosa stai cercando in un framework ajax.

Personalmente mi piace quello che jQuery può fare con determinate quantità di codice, ma la sfida più grande nello scrivere codice jQuery è renderlo leggibile.

YUI è molto più dettagliato di altri framework perché imposta una convenzione per l'utilizzo degli spazi dei nomi, ma ci sono scorciatoie per scrivere meno codice ed evita di provare a far sembrare javascript qualcos'altro.

Dojo cerca di rendere javascript simile a Java e dalla mia esperienza è piuttosto lento. Ha alcuni bei widget e un'implementazione javascript del linguaggio di template django (che è piuttosto utile anche al di fuori dei progetti django).

Personalmente evito prototipi e mootools perché possono rompere altri codici javascript (o viceversa).

Se sei nuovo in javascript e ajax, ti consiglio jQuery perché è il più facile con cui iniziare. Ma non mi aspetto che nessun framework js venga integrato con django principalmente perché non ce n'è davvero bisogno.


2

+1 a Soviut e Daniel per le buone risposte. Jquery è un bel framework. Oltre a Pinax un paio di altre "grandi" applicazioni Django lo utilizzano: Satchmo e Review Board (che è passato da un altro framework ... mootools IIRC).

È anche popolare il rollio del tuo Javascript senza utilizzare alcun framework, ad esempio l'amministratore Django.

L'unico altro suggerimento che potrei dare è che, se sei un Pythonhead molto esperto, allora potresti apprezzare il mochikit che viene criticato per essere troppo "pitonico". Sembra essere il framework di scelta per Turbogears ma personalmente non ho visto nessun progetto Django utilizzarlo.


4
Buona risposta eccetto per la frase sul rollare il tuo JS. Non lo definirei così popolare, non l'ho visto nelle app Django diverse dall'amministratore di Django e lo sconsiglio. Perché sbattere la testa contro un muro di mattoni quando non è necessario? +1 qui se viene rimosso.
Carl Meyer,

Beh, non sto dicendo che sia una buona idea :) Il mio javascript è abbastanza debole da non avere scelta, quindi uso jquery. L'ho menzionato perché ho fatto un sondaggio su 4-5 dei siti in cima alla lista su djangosites.com e li ho trovati tutti usando js personalizzati.
Van Gale

Infatti anche l'amministratore di Django sta passando a JQuery: code.djangoproject.com/changeset/12297
Chris Lawlor

1

Va bene, questo potrebbe essere soggettivo perché la definizione di "migliore" può avere significati diversi per ogni individuo. Ma dal momento che stai lavorando con Django, significa che avrai le mani giuste con la sintassi di Python. Una notevole libreria Javascript che non viene esposta troppo è Mochikit . La cosa buona è che ha una sintassi familiare al programmatore Python (perché il creatore è un programmatore Python). Ha anche una documentazione abbastanza ben scritta. TurboGears supporta Mochikit.


1

Se hai bisogno di lavorare con AJAX nei tuoi progetti django con pochissime impostazioni e semplici da usare, la mia offerta è:

django-ajax ( Github , Pypi )

Librerie AJAX veloci, flessibili e facili da usare per i progetti django. Contiene decoratore ajax, middleware ajax, scorciatoie e altro ancora.


0

La frase "Miglior libreria AJAX" è altamente soggettiva e dipende dalle preferenze personali, dal know-how esistente, dai requisiti del lavoro, ecc. Ecc.

Mentre preferisco jQuery per (quasi) tutto, conosco alcune persone che giurano su Dojo o ExtJS. Potrebbe esserci un caso in cui si desidera utilizzare jQuery, ma i requisiti potrebbero dettare l'utilizzo di ExtJS.

Detto tutto. Usa jQuery. jQuery rocce;)


0

Django non si lega davvero al lato client. Usa tutto ciò con cui ti senti a tuo agio. Django suona bene con tutto in quell'area, perché lo scrivi nei modelli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.