DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Updated on

Utilizando `{% for %}` e `{% if %}` no Django: Guia Completo com Exemplos

O Django, um dos frameworks web mais populares em Python, oferece suporte robusto para a criação de aplicativos web dinâmicos. Duas das construções fundamentais para tornar as páginas dinâmicas são as tags {% for %} e {% if %}, que permitem criar loops e condicionais diretamente nos templates. Neste artigo, exploraremos como utilizar essas tags no Django com exemplos práticos.

Usando {% for %} para Loops

A tag {% for %} permite criar loops nos templates do Django, tornando possível iterar por listas, dicionários e consultas do banco de dados. Vejamos como usá-la:

<ul>
  {% for item in item_list %}
    <li>{{ item }}</li>
  {% endfor %}
</ul>
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, estamos criando uma lista não ordenada (<ul>) e, dentro dela, usamos {% for %} para iterar por item_list, que é uma lista de itens. Para cada item, um elemento <li> é gerado na lista.

Exemplo de Loop com Dicionário

Suponha que você tenha um dicionário person com informações sobre pessoas. Você pode usar um loop para exibir essas informações:

<ul>
  {% for key, value in person.items %}
    <li><strong>{{ key }}:</strong> {{ value }}</li>
  {% endfor %}
</ul>
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, estamos iterando pelo dicionário person e exibindo as chaves e os valores correspondentes em uma lista.

Usando {% if %} para Condições

A tag {% if %} é usada para criar condições nos templates. Com ela, você pode exibir conteúdo com base em expressões condicionais. Vejamos um exemplo simples:

{% if user.is_authenticated %}
  <p>Olá, {{ user.username }}!</p>
{% else %}
  <p>Você não está autenticado.</p>
{% endif %}
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, usamos {% if %} para verificar se o usuário está autenticado. Se sim, exibimos uma mensagem de boas-vindas com o nome do usuário; caso contrário, exibimos uma mensagem indicando que o usuário não está autenticado.

Exemplo de {% if %} Aninhado

Você pode aninhar condicionais {% if %} para criar lógica mais complexa. Por exemplo, para exibir conteúdo apenas se um usuário estiver autenticado e for um superusuário:

{% if user.is_authenticated %}
  {% if user.is_superuser %}
    <p>Olá, superusuário {{ user.username }}!</p>
  {% else %}
    <p>Olá, usuário comum {{ user.username }}!</p>
  {% endif %}
{% else %}
  <p>Você não está autenticado.</p>
{% endif %}
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, verificamos se o usuário está autenticado e, em seguida, se ele é um superusuário ou um usuário comum.

Conclusão

As tags {% for %} e {% if %} são ferramentas poderosas para criar conteúdo dinâmico em seus templates do Django. Com essas construções, você pode iterar por listas, dicionários e criar condições para exibir ou ocultar conteúdo com base em expressões condicionais. A combinação de loops e condicionais permite a criação de interfaces de usuário altamente personalizadas e adaptáveis, tornando seus aplicativos web mais ricos e interativos. Lembre-se de praticar e explorar essas funcionalidades para aprofundar sua compreensão do uso das tags {% for %} e {% if %} no Django.

Top comments (0)