Mesmo que isso não esteja inteiramente no espírito da SO, eu amo essa pergunta, porque tive o mesmo problema quando comecei, por isso darei um guia rápido. Obviamente, você não entende os princípios por trás deles (não tome isso como uma ofensa, mas se o fizesse, não estaria perguntando).
O Django é do lado do servidor . Isso significa que, digamos que um cliente acesse um URL, você tem uma função views
que renderiza o que ele vê e retorna uma resposta em HTML. Vamos dividir em exemplos:
views.py:
def hello(request):
return HttpResponse('Hello World!')
def home(request):
return render_to_response('index.html', {'variable': 'world'})
index.html:
<h1>Hello {{ variable }}, welcome to my awesome site</h1>
urls.py:
url(r'^hello/', 'myapp.views.hello'),
url(r'^home/', 'myapp.views.home'),
Esse é um exemplo do uso mais simples. Ir para 127.0.0.1:8000/hello
significa uma solicitação para a hello()
função, vai 127.0.0.1:8000/home
retornar index.html
e substituir todas as variáveis conforme solicitado (você provavelmente já sabe tudo isso agora).
Agora vamos falar sobre o AJAX . As chamadas AJAX são um código do lado do cliente que faz solicitações assíncronas. Isso parece complicado, mas simplesmente significa que ele faz uma solicitação para você em segundo plano e depois lida com a resposta. Portanto, quando você faz uma chamada AJAX para algum URL, obtém os mesmos dados que obteria quando um usuário fosse para esse local.
Por exemplo, uma chamada AJAX para 127.0.0.1:8000/hello
retornará a mesma coisa que faria se você a visitasse. Só que desta vez, você a possui dentro de uma função JavaScript e pode lidar com ela da maneira que desejar. Vejamos um caso de uso simples:
$.ajax({
url: '127.0.0.1:8000/hello',
type: 'get', // This is the default though, you don't actually need to always mention it
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
O processo geral é este:
- A chamada vai para o URL
127.0.0.1:8000/hello
como se você tivesse aberto uma nova guia e tivesse feito isso sozinho.
- Se for bem-sucedido (código de status 200), execute a função para obter sucesso, o que alertará os dados recebidos.
- Se falhar, execute uma função diferente.
Agora o que aconteceria aqui? Você receberia um alerta com 'olá mundo'. O que acontece se você fizer uma ligação AJAX para casa? A mesma coisa, você receberá um alerta informando <h1>Hello world, welcome to my awesome site</h1>
.
Em outras palavras - não há novidades nas chamadas AJAX. Eles são apenas uma maneira de permitir que o usuário obtenha dados e informações sem sair da página e contribui para um design suave e muito elegante do seu site. Algumas diretrizes que você deve tomar nota:
- Aprenda jQuery . Não posso enfatizar isso o suficiente. Você precisará entender um pouco para saber como lidar com os dados que recebe. Você também precisará entender algumas sintaxes básicas do JavaScript (não muito longe do python, você se acostumará). Eu recomendo fortemente os tutoriais em vídeo da Envato para jQuery , eles são ótimos e colocam você no caminho certo.
- Quando usar o JSON? . Você verá muitos exemplos em que os dados enviados pelas visualizações do Django estão em JSON. Eu não entrei em detalhes sobre isso, porque não é importante como fazê-lo (há muitas explicações em abundância) e muito mais importante quando . E a resposta é: dados JSON são dados serializados. Ou seja, dados que você pode manipular. Como mencionei, uma chamada AJAX buscará a resposta como se o usuário tivesse feito isso sozinho. Agora diga que você não quer mexer com todo o html e, em vez disso, deseja enviar dados (talvez uma lista de objetos). O JSON é bom para isso, porque ele é enviado como um objeto (os dados JSON se parecem com um dicionário python) e você pode iterá-lo ou fazer outra coisa que elimine a necessidade de examinar o html inútil.
- Adicione por último . Quando você cria um aplicativo Web e deseja implementar o AJAX - faça um favor a si mesmo. Primeiro, crie o aplicativo inteiro completamente desprovido de qualquer AJAX. Veja que tudo está funcionando. Então, e somente então, comece a escrever as chamadas AJAX. Esse é um bom processo que ajuda você a aprender muito também.
- Use as ferramentas de desenvolvedor do chrome . Como as chamadas AJAX são feitas em segundo plano, às vezes é muito difícil depurá-las. Você deve usar as ferramentas de desenvolvedor do Chrome (ou ferramentas semelhantes, como o firebug) e outras
console.log
coisas para depurar. Não vou explicar em detalhes, basta pesquisar no Google e descobrir mais sobre isso. Seria muito útil para você.
- Consciência do CSRF . Finalmente, lembre-se de que solicitações de postagem no Django requerem o
csrf_token
. Com chamadas AJAX, muitas vezes você deseja enviar dados sem atualizar a página. Você provavelmente enfrentará alguns problemas antes de finalmente se lembrar disso - espere, esqueceu de enviar o csrf_token
. Esse é um obstáculo conhecido para iniciantes na integração AJAX-Django, mas depois que você aprende como fazê-lo funcionar bem, é fácil.
Isso é tudo que vem à minha cabeça. É um assunto vasto, mas sim, provavelmente não há exemplos suficientes por aí. Apenas trabalhe seu caminho até lá, devagar, você o conseguirá eventualmente.