Qui visite le site
Fait partie de la section Utilisateurs et comptes du Journey Django de Coddy. Leçon 1 sur 16.
Toute personne qui ouvre cette application de notes voit toutes les notes. Pour que chaque personne ait ses propres notes, le site doit d’abord savoir qui le visite.
L’application Django django.contrib.auth stocke les comptes dans son modèle User : un nom d’utilisateur, un mot de passe haché, une adresse e-mail. Quand quelqu’un se connecte, Django se souvient de cette personne grâce à une session : un cookie, une petite valeur que le navigateur renvoie avec chaque requête et qui pointe vers une ligne sur le serveur.
À chaque requête, Django place le visiteur dans request.user, et les modèles y ont accès sous le nom user. Un visiteur qui ne s’est pas connecté est un AnonymousUser ; vérifie donc avec is_authenticated. Une boutique affiche une bannière uniquement aux visiteurs :
{% if not user.is_authenticated %}
<p class="banner">Make an account to save your cart.</p>
{% endif %}Défi
FacileDans base.html, à l’intérieur de <div class="account"> :
- Un utilisateur connecté voit
Signed in assuivi de son nom d’utilisateur, par exempleSigned in as ada. - Tous les autres voient
You are not signed in.
Appuie sur Run et ouvre /. Connecte-toi ensuite à /admin/ en tant que ada (mot de passe coddy-pass-123), puis ouvre à nouveau /.
Essayez vous-même
{% 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>
Toutes les leçons de Utilisateurs et comptes
1Qui visite le site
Qui visite le siteSe connecterEntraînez-vous par vous-même : Playground Django