Menu
CoddyTech

Quem está visitando

Parte da seção Usuários e contas do Journey de Django da Coddy. Lição 1 de 16.

Qualquer pessoa que abrir este aplicativo de notas verá todas as notas. Para que cada pessoa tenha suas próprias notas, o site primeiro precisa saber quem está visitando.

O aplicativo django.contrib.auth do Django armazena contas em seu modelo User: um nome de usuário, uma senha com hash e um e-mail. Quando alguém faz login, o Django se lembra dessa pessoa usando uma sessão: um cookie, um pequeno valor que o navegador envia de volta a cada solicitação e que aponta para uma linha no servidor.

A cada solicitação, o Django coloca o visitante em request.user, e os templates o recebem como user. Um visitante que não fez login é um AnonymousUser, então verifique com is_authenticated. Uma loja mostra um banner apenas para visitantes:

{% if not user.is_authenticated %}
    <p class="banner">Make an account to save your cart.</p>
{% endif %}
challenge icon

Desafio

Fácil

Em base.html, dentro de <div class="account">:

  • Um usuário conectado vê Signed in as e seu nome de usuário, como Signed in as ada.
  • Todos os outros veem You are not signed in.

Pressione Run e abra /. Em seguida, faça login em /admin/ como ada (senha coddy-pass-123) e abra / novamente.

Experimente você mesmo

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>{% block title %}Notes{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'notes/style.css' %}">
</head>
<body>
    <header>
        <a class="brand" href="{% url 'notes:list' %}">Notes</a>
        <nav>
            <a href="{% url 'notes:create' %}">New note</a>
        </nav>
        <div class="account">
        </div>
    </header>
    <main>
        {% block content %}{% endblock %}
    </main>
</body>
</html>

Todas as lições de Usuários e contas

Pratique por conta própria: Playground de Django