Menu
CoddyTech

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 %}
challenge icon

Défi

Facile

Dans 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

Entraînez-vous par vous-même : Playground Django