Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Diferença entre 'templates/index.html' e 'templates/perfis/index.html'

Olá pessoal,

não entendi a diferença entre esses dois arquivos:

<!-- connectedin/perfis/templates/index.html -->

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">

        <title>ConnectedIn</title>
    </head>
    <body>
        <h1>Index</h1>
        <ul>
            {% for perfil in perfis %}
                <li>{{ perfil.nome }} / {{ perfil.email }}</li>
            {% endfor %}
        </ul>
        <p>Nenhum Perfil encontrado</p>
    </body>
</html>
<!-- connectedin/perfis/templates/perfis/index.html -->

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">

        <title>ConnectedIn</title>
    </head>
    <body>
        <h1>Index</h1>
        {% if perfis %}
            <ul>
                {% for perfil in perfis %}
                    <li>
                        <a href="/perfis/{{perfil.id}}">{{ perfil.nome }}</a> / {{ perfil.email }}
                    </li>
                {% endfor %}
            </ul>
        {% else %}
            <p>Nenhum Perfil encontrado</p>
        {% endif %}
    </body>
</html>

Alguém poderia esclarecer isso para mim?

Desde já agradeço

9 respostas

Bom dia.

Ambos exibem uma lista de perfis, porém o segundo permite você clicar no perfil da lista e acessa-lo.

Obrigado Flavio! No browser quando chamo "localhost:8000" o "index.html" chamado é o que está no diretório "templates", correto?

Se não me engano, o primeiro template que você postou é evoluído para o segundo template que você postou. Só existirá uma versão dele. É esse template que é acessado ao acessar localhost:8080.

Vi que na explicação do capítulo alguns caminhos não estava corretos, talvez isso tenha gerado sua dúvida. Alterei lá, dá uma conferida.

Muito obrigado Flavio pela sua rápida resposta. Esse caminho, para o browser buscar o "index.html" é definido no arquivo urls.py como: perfis.views.index?

# connectedin/perfis/urls.py

from django.conf.urls import patterns, url

urlpatterns = patterns('',
    url(r'^$', 'perfis.views.index'),

    # corresponde ao caminho da nossa âncora na página index.html
    url(r'^perfis/(?P<perfil_id>\d+)$', 'perfis.views.exibir')
)
 url(r'^$', 'perfis.views.index'),

A primeira rota retorna o index.thml que existe a lista com os perfis.

  url(r'^perfis/(?P<perfil_id>\d+)$', 'perfis.views.exibir')

A segunda rota é aquela que exibe um único perfil apenas. Essa rota é acessada quando o usuário clica em algum perfil da lista. Lá, a URL para cada perfil é montada dinamicamente gerando uma URL compatível com a segunda rota.

Obrigado Flavio,

entendi qual foi o erro. Não exite esse arquivo:

<!-- connectedin/perfis/templates/perfis/index.html -->

O segundo "perfis" não existe, certo?

solução!

Isso mesmo! Eu alterei o comentário lá na explicação do capítulo para ficar coerente.

Isso mesmo.

Muito obrigado Flavio!