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

Défi

Facile

Dans base.html, à l’intérieur de <div class="account"> :

  • Un utilisateur connecté voit Signed in as suivi de son nom d’utilisateur, par exemple Signed 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

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