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.이 표시됩니다.

Run을 누르고 /를 여세요. 그런 다음 /admin/에서 ada(비밀번호 coddy-pass-123)로 로그인한 뒤 /를 다시 여세요.

직접 해보기

{% 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 플레이그라운드