O curso de criação de sistemas com Python e Django é uma oportunidade imperdível para quem deseja se aprofundar no desenvolvimento de aplicações web. Neste capítulo, vamos abordar um aspecto crucial do Django: a criação e manipulação de templates. Além disso, vamos explorar como as views funcionam em Django e como podemos usá-las para tornar nossas aplicações mais dinâmicas e interativas.
18.4 Templates em Django
No Django, os templates são a camada responsável pela apresentação dos dados ao usuário. Eles são escritos em uma linguagem chamada Django Template Language (DTL), que é uma linguagem de marcação semelhante ao HTML, mas com algumas adições úteis que permitem a inserção de dados dinâmicos em nossas páginas.
Os templates são armazenados em arquivos .html e podem ser organizados em diretórios da maneira que você preferir. No entanto, é comum colocar todos os templates relacionados a uma determinada aplicação em um diretório chamado 'templates' dentro do diretório da aplicação.
Para criar um template, basta criar um novo arquivo .html e começar a escrever seu código DTL. Você pode usar todas as tags HTML normais, mas também tem a opção de usar tags especiais do DTL, que são encapsuladas entre chaves duplas, como {{ }} e {% %}. Estas tags permitem a inserção de variáveis, loops, condicionais e outras estruturas de controle em seus templates.
Por exemplo, se você quiser exibir o nome do usuário em uma página, você pode passar uma variável chamada 'nome_do_usuario' para o template e, em seguida, usar a tag {{ nome_do_usuario }} para inserir o valor dessa variável em sua página.
Views em Django
As views, por outro lado, são a camada responsável pela lógica de negócios de suas aplicações. Elas são funções ou classes Python que recebem uma solicitação HTTP, processam essa solicitação de alguma maneira e, em seguida, retornam uma resposta HTTP.
Cada view em Django é mapeada para uma ou mais URLs, o que significa que quando um usuário visita uma determinada URL em seu site, Django irá executar a view correspondente e retornar o resultado para o usuário.
As views podem fazer muitas coisas diferentes, dependendo do que sua aplicação precisa. Elas podem renderizar templates, retornar dados em formato JSON, redirecionar o usuário para outra página, entre outras coisas.
Para criar uma view, você precisa definir uma função ou classe Python em seu arquivo views.py. Esta função ou classe deve receber pelo menos um argumento, que é uma instância da classe HttpRequest. Em seguida, ela deve retornar uma instância da classe HttpResponse ou uma de suas subclasses.
Por exemplo, aqui está como você poderia definir uma view simples que renderiza um template:
def minha_view(request): return render(request, 'meu_template.html')
O Django oferece muitas ferramentas e abstrações úteis para facilitar a criação de views, como a função render(), que renderiza um template e retorna o resultado como uma resposta HTTP. Além disso, Django também suporta views baseadas em classes, que podem ser mais reutilizáveis e modulares do que as views baseadas em funções.
Em resumo, os templates e as views são duas peças fundamentais do Django que trabalham juntas para criar aplicações web dinâmicas e interativas. Com a compreensão sólida desses conceitos, você estará bem preparado para continuar sua jornada de aprendizado no mundo do desenvolvimento web com Python e Django.