누가 방문 중일까요
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.이 표시됩니다.
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 플레이그라운드