Menu
CoddyTech

Chi sta visitando

Fa parte della sezione Utenti e account del percorso Django di Coddy. Lezione 1 di 16.

Chiunque apra questa app per prendere appunti vede tutte le note. Per dare a ogni persona le proprie note, il sito deve prima sapere chi lo sta visitando.

L’app Django django.contrib.auth memorizza gli account nel suo modello User: un nome utente, una password sottoposta a hashing e un’email. Quando qualcuno accede, Django se ne ricorda tramite una sessione: un cookie, un piccolo valore che il browser invia di nuovo a ogni richiesta e che fa riferimento a una riga sul server.

A ogni richiesta, Django assegna il visitatore a request.user e i template lo ricevono come user. Un visitatore che non ha effettuato l’accesso è un AnonymousUser, quindi verifica con is_authenticated. Un negozio mostra un banner solo ai visitatori:

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

Sfida

Facile

In base.html, all'interno di <div class="account">:

  • Un utente che ha effettuato l'accesso legge Signed in as e il proprio nome utente, ad esempio Signed in as ada.
  • Tutti gli altri leggono You are not signed in.

Premi Run e apri /. Poi accedi a /admin/ come ada (password coddy-pass-123) e apri di nuovo /.

Provalo tu

{% 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>

Tutte le lezioni di Utenti e account

Esercitati da solo: Playground Django