Menu
CoddyTech

Kto odwiedza stronę

Część sekcji Użytkownicy i konta ścieżki Django w Coddy. Lekcja 1 z 16.

Każdy, kto otworzy tę aplikację do notatek, widzi wszystkie notatki. Aby każda osoba miała własne notatki, strona musi najpierw wiedzieć, kto ją odwiedza.

Aplikacja Django django.contrib.auth przechowuje konta w swoim modelu User: nazwę użytkownika, zahaszowane hasło i adres e-mail. Gdy ktoś się loguje, Django zapamiętuje go za pomocą sesji: pliku cookie, niewielkiej wartości, którą przeglądarka odsyła z każdym żądaniem i która wskazuje wiersz na serwerze.

Przy każdym żądaniu Django przypisuje odwiedzającego do request.user, a szablony otrzymują go jako user. Odwiedzający, który się nie zalogował, jest obiektem AnonymousUser, więc sprawdź is_authenticated. Sklep wyświetla baner tylko odwiedzającym:

{% if not user.is_authenticated %}
    <p class="banner">Make an account to save your cart.</p>
{% endif %}
challenge icon

Wyzwanie

Łatwy

W pliku base.html, wewnątrz <div class="account">:

  • Zalogowany użytkownik widzi Signed in as i swoją nazwę użytkownika, na przykład Signed in as ada.
  • Wszyscy pozostali widzą You are not signed in.

Naciśnij Run i otwórz /. Następnie zaloguj się pod adresem /admin/ jako ada (hasło coddy-pass-123) i ponownie otwórz /.

Spróbuj swoich sił

{% 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>

Wszystkie lekcje w sekcji Użytkownicy i konta

Poćwicz samodzielnie: Edytor online Django