Qual é a melhor biblioteca AJAX para Django? [fechadas]

108

Qual biblioteca AJAX é a melhor para django e por quê?
Procurando um com um grande banco de dados de tutoriais, livros e documentação detalhada.
Qual é o mais fácil de trabalhar? Qual está em desenvolvimento inicial, mas mostra uma grande promessa para o futuro?

Atenciosamente,
chriss

chriss
fonte
Alterou o título da sua pergunta para algo mais relevante.
mmcdole
4
Seria bom esclarecer se esta é uma pergunta sobre bibliotecas javascript (prototypejs, jquery, dojo ...) ou bibliotecas Django / Python (dajax ...)
Steve Bennett
Parece que as respostas por aqui estão agora altamente obsoletas, já que frameworks como Django REST Framework e Tastypie parecem ser mais ativos e agora preferidos pela maioria dos desenvolvedores, enquanto outros parecem estar tendo problemas com frameworks que são menos mantidos no momento (como Dajax )
Paul-Sebastian Manole

Respostas:

70

Eu recomendo altamente o jQuery . Existem vários tutoriais sobre como implementá-lo.

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: A Microsoft também anunciou há algum tempo que o jQuery seria a estrutura oficial do lado do cliente para ASP.NET MVC, então é bom saber, independentemente de qual estrutura do lado do servidor você está usando.

Soviut
fonte
Nota: os primeiros dois links não funcionam mais.
Garrett Hyde
3
Os links parecem estar online novamente.
Soviut
3
Por acaso, nunca construa uma resposta JSON "{'response_text': '"+post_text+" recieved.'}"como no terceiro link. Importe jsonou simplejsone use dumps!
Flash de
2
Embora o jQuery seja fantástico, infelizmente, o Django não tem integração explícita (fora do admin) com seus formulários ou visualizações.
Cerin de
2
O último link não funciona mais.
svenwildermann
62

Acho que pode ser isso que você está procurando: django-dajax

Muito bem documentado. API simples. Muito limpo e agradável. Pretendo usá-lo mais em alguns de meus projetos. É independente da biblioteca JS e funciona bem com jQuery, se essa for a sua preferência.

ATUALIZAR:

Outras soluções semelhantes ao dajaxice, mas não dajax padrão.

No final, eles geralmente funcionam da mesma forma.

  • Defina / inclua algumas rotas de URL predefinidas.
  • Registre modelos / visualizações / funções que serão usados ​​como fontes de dados.
  • Aproveitar.

UDATE2:

Este conselho é super antigo. Provavelmente deveria pesquisar outras soluções.

Derek Reynolds
fonte
2
Estou surpreso que isso não tenha obtido a votação. Parece ótimo. Mergulhando agora.
Ben Keating
Passaram-se 1,5 anos e o projeto parece que não teve muitas atualizações desde então. Esta ainda é uma boa recomendação?
Tim Saylor
@TimSaylor, eu diria que o DajaxIce ainda é uma biblioteca bastante sólida se este é o tipo de solução que você está procurando: uma maneira bem simples de criar endpoints Ajax arbitrários que você pode consumir em javascript. Eu pessoalmente não usaria a biblioteca Dajax regular, já que você acaba escrevendo muito código de apresentação em suas funções de visualização. Dito isso, existem várias bibliotecas sólidas disponíveis para criar terminais RESTful automaticamente a partir de seus modelos (ou outros dados arbitrários). (Vou atualizar minha resposta com links).
Derek Reynolds
super lib para implementação de ajax em Django
Surya
1
A página do Github para Dajax agora diz 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
usuário
16

Não há nada no Django que torne qualquer uma das bibliotecas mais fácil ou funcione melhor com o framework. Basta usar aquele que melhor se adapta ao seu cérebro.

Dito isso, minha sensação é que jQuery é mais popular no mundo Django e é o que eu pessoalmente uso. Mais notavelmente, muitos dos aplicativos no Pinax requerem jQuery. Alguns outros aplicativos compartilhados e snippets 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
fonte
7

Check-out Dajax :

Projeto Dajax

Bibliotecas AJAX fáceis de usar para Django

Bibliotecas rápidas, fáceis e leves para implementar AJAX dentro de seus projetos django. Pronto para uso em 5 minutos.

Dajax é uma ferramenta poderosa para desenvolver lógica de apresentação assíncrona de maneira fácil e rápida em aplicativos da web usando python e quase nenhuma linha de código-fonte JS.

Ele suporta até quatro das estruturas JS mais populares: Prototype, jQuery, Dojo e mootols.

Denysonique
fonte
Depois de postar esta resposta, percebi que alguém já mencionou Dajax, mas essa resposta não descreve o que a biblioteca oferece (e não pude comentar)
denysonique
1
E se você checar os READMEs do Github você encontrará "Devo usar django-dajax ou django-dajaxice? Em uma palavra, não. Eu criei esses projetos 4 anos atrás como uma ferramenta legal para resolver um problema específico que eu tinha naquela época . Hoje em dia, usar esses projetos é uma má ideia. "
jwd630 de
4

Usei com sucesso jquery, YUI e Dojo em diferentes projetos django. Não há nada sobre qualquer um que o tornou melhor para usar especificamente com django. Eu concordo com o jpartogy que mochikit pode caber em django mais do que qualquer outro apenas por causa da API "pythônica" (parecida com torcida). Realmente depende do que você está procurando em uma estrutura ajax.

Pessoalmente, gosto do que o jQuery pode fazer com determinadas quantidades de código, mas o maior desafio em escrever código jQuery é torná-lo legível.

YUI é muito mais detalhado do que outras estruturas porque define uma convenção para o uso de namespaces, mas existem atalhos para escrever menos código e evita tentar fazer o javascript se parecer com outra coisa.

O Dojo tenta fazer com que o javascript se pareça com Java e, pela minha experiência, é muito lento. Ele tem alguns widgets legais e uma implementação javascript da linguagem de modelos django (que é muito útil mesmo fora dos projetos django).

Eu pessoalmente evito protótipo e mootools porque eles podem quebrar outro código javascript (ou vice-versa).

Se você é novo em javascript e ajax, eu recomendo jQuery porque é o mais fácil de começar. Mas não espero que nenhum framework js seja integrado ao django, principalmente porque realmente não há necessidade disso.

Vasil
fonte
2

+1 para Soviut e Daniel para boas respostas. Jquery é um bom framework. Além do Pinax, alguns outros "grandes" aplicativos Django o utilizam: Satchmo e Review Board (que mudou de outro framework ... mootools IIRC).

Também popular é lançar seu próprio Javascript sem usar nenhuma estrutura, por exemplo, o administrador do Django.

A única outra sugestão que posso fazer é que, se você é um Pythonhead muito experiente, talvez goste do mochikit, que é criticado por ser muito "pythoniano". Parece ser o framework de escolha para Turbogears, mas eu pessoalmente não vi nenhum projeto Django usando-o.

Van Gale
fonte
4
Boa resposta, exceto pela frase sobre rolar seu próprio JS. Eu não chamaria isso de popular, eu não vi isso em aplicativos Django além do administrador do Django, e eu não recomendo. Por que bater sua cabeça contra uma parede de tijolos quando você não precisa? +1 aqui se for removido.
Carl Meyer
Bem, não estou dizendo que é uma boa ideia :) Meu javascript é fraco o suficiente para que eu não tenha escolha, então eu uso o jquery. Mencionei isso porque fiz uma pesquisa de 4 a 5 dos sites no topo da lista em djangosites.com e descobri que todos usavam js personalizados.
Van Gale
Na verdade, até o administrador do Django está mudando para o JQuery: code.djangoproject.com/changeset/12297
Chris Lawlor
1

Ok, isso pode ser subjetivo porque a definição de 'melhor' pode significar diferente para cada indivíduo. Mas como você está trabalhando com Django, isso significa que você aprenderá a sintaxe Python. Uma notável biblioteca Javascript que não fica muito exposta é a Mochikit . O bom disso é que tem uma sintaxe familiar ao programador Python (porque o criador é um programador Python). Ele também escreveu muito bem a documentação. O TurboGears out-of-the-box suporta Mochikit.

Joshua Partogi
fonte
1

Se você precisa trabalhar com AJAX em seus projetos django com muito pouca configuração e simples de usar, minha oferta é:

django-ajax ( Github , Pypi )

Bibliotecas AJAX rápidas, flexíveis e fáceis de usar para projetos django. Contém decorador ajax, middleware ajax, atalhos e muito mais.

Yceruto
fonte
0

A frase "Melhor Biblioteca AJAX" é altamente subjetiva e depende de preferências pessoais, know-how existente, requisitos do trabalho etc. etc.

Embora eu prefira jQuery para (quase) tudo, conheço algumas pessoas que juram por Dojo ou ExtJS. Pode haver casos em que você deseja usar jQuery, mas os requisitos podem exigir que você use ExtJS.

Tudo dito. Use jQuery. rochas jQuery;)

Mir Nazim
fonte
0

Django realmente não se relaciona com o lado do cliente. Use aquilo com que você se sentir confortável. Django funciona bem com tudo nessa área, porque você apenas escreve nos templates.

sebnow
fonte