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 %}Sfida
FacileIn base.html, all'interno di <div class="account">:
- Un utente che ha effettuato l'accesso legge
Signed in ase il proprio nome utente, ad esempioSigned 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