Menu
CoddyTech

로그인하기

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

사이트는 누가 로그인했는지 알 수 있지만, 로그인할 페이지는 없습니다. Django에는 뷰인 LoginView가 있습니다. 프로젝트의 urls.py에 한 줄을 추가하면 로그아웃 페이지와 비밀번호 페이지도 함께 사용할 수 있습니다.

path("accounts/", include("django.contrib.auth.urls")),

이제 /accounts/login/이 login이라는 이름으로 존재합니다. 이 뷰는 username 필드와 password 필드가 있는 form을 사용해 registration/login.html을 렌더링합니다. 해당 템플릿은 직접 작성해야 합니다. 일반적인 POST 양식이면 됩니다. Django는 모든 앱의 templates/ 폴더를 확인합니다. 경로가 notes/가 아니라 registration/으로 시작하는 이유는 Django의 뷰가 어느 앱인지 알지 못하기 때문입니다.

로그인에 성공하면 뷰는 LOGIN_REDIRECT_URL로 리디렉션합니다. 기본값인 /accounts/profile/은 여기에 없으므로 settings.py에서 설정하세요.

challenge icon

챌린지

쉬움

로그인 페이지를 추가하세요.

  1. mysite/urls.py에서 accounts/ 아래에 django.contrib.auth.urls를 포함하세요.
  2. notes/templates/registration/login.html을 만들고 notes/base.html을 확장하여, POST 폼에 form과 {% csrf_token %}을 표시하고 Log in 버튼을 넣으세요.
  3. settings.py에서 LOGIN_REDIRECT_URL을 "/"로 설정하세요.
  4. base.html에서 로그아웃한 방문자에게 Log in을 {% url 'login' %}에 연결하세요.

ada(비밀번호 coddy-pass-123)로 로그인하면 헤더에 ada님으로 로그인됨이라고 표시됩니다.

직접 해보기

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("notes.urls")),
]

사용자와 계정의 모든 레슨

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