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 une personne se connecte, Django se souvient d’elle grâce à une session. Le navigateur renvoie une petite valeur, un cookie, avec chaque requête, 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. Un magasin 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">, affiche qui visite le site. Lorsqu’une personne est connectée, la zone affiche Signed in as et son nom d’utilisateur, par exemple Signed in as ada. Sinon, elle affiche You are not signed in.
Ouvre / : le message You are not signed in. s’affiche. Connecte-toi à /admin/ avec le nom d’utilisateur ada (mot de passe coddy-pass-123), puis ouvre / : Signed in as ada s’affiche.
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