Menu
CoddyTech

누가 방문 중일까요

Coddy Django 여정의 사용자와 계정 섹션에 포함된 레슨. 16개 중 1번째.

이 메모 앱을 여는 사람은 누구나 모든 메모를 볼 수 있습니다. 각자 자신만의 메모를 볼 수 있게 하려면, 먼저 사이트에서 누가 방문했는지 알아야 합니다.

Django의 앱 django.contrib.auth는 계정을 User 모델에 저장합니다. 계정에는 사용자 이름, 해시된 비밀번호, 이메일이 포함됩니다. 누군가 로그인하면 Django는 세션으로 그 사용자를 기억합니다. 브라우저는 쿠키라는 작은 값을 모든 요청과 함께 다시 보내며, 이 값은 서버의 행 하나를 가리킵니다.

모든 요청에서 Django는 방문자를 request.user에 저장하고, 템플릿에서는 user로 사용할 수 있습니다. 로그인하지 않은 방문자는 AnonymousUser이므로 is_authenticated로 확인하세요. 상점에서는 방문자에게만 배너를 표시합니다.

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

챌린지

쉬움

base.html에서 <div class="account"> 안에 방문자가 누구인지 표시하세요. 로그인한 경우 상자에 Signed in as와 사용자 이름이 표시됩니다. 예를 들면 Signed in as ada와 같습니다. 그렇지 않으면 You are not signed in.이 표시됩니다.

/를 여세요. You are not signed in.이라고 표시됩니다. /admin/에서 ada로 로그인한 다음(비밀번호는 coddy-pass-123), /를 여세요. Signed in as ada라고 표시됩니다.

직접 해보기

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

사용자와 계정의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드