누가 방문 중일까요
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 %}챌린지
쉬움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 플레이그라운드