✅ Django에서 {% url 'login' %}이 가능한 이유 정리

2025. 5. 6. 19:08·기술블로그-Django편

✅ Django에서 {% url 'login' %}이 가능한 이유 정리

Django에서는 {% url 'login' %}처럼 이름으로 URL을 참조할 수 있는데, 이때 'login'이라는 name을 우리가 명시적으로 지정하지 않았는데도 동작하는 이유가 궁금하셨죠? 이 글에서는 그 이유를 구조적으로 쉽게 설명해드릴게요.


1️⃣ 기본 URL 설정 확인하기

Django 프로젝트에서 아래와 같이 urls.py에 로그인 관련 경로를 추가할 수 있습니다:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.blog_list, name='blog_list'),
    path('<int:pk>/', views.blog_detail, name="blog_detail"),

    # 🔐 Django의 인증 URL들 포함
    path('accounts/', include('django.contrib.auth.urls')),
]

이 한 줄이 핵심입니다:

include('django.contrib.auth.urls')

2️⃣ django.contrib.auth.urls가 하는 일은?

Django는 django.contrib.auth.urls를 통해 다음과 같은 기본 인증 URL 패턴들을 자동 등록합니다:

경로 (Path) URL Name (name) 기능

accounts/login/ 'login' 로그인 폼 페이지
accounts/logout/ 'logout' 로그아웃 수행
accounts/password_change/ 'password_change' 비밀번호 변경 페이지
accounts/password_reset/ 'password_reset' 비밀번호 재설정 페이지 등

✅ 이 이름(name)들은 Django 내부에서 이미 설정되어 있기 때문에, 우리가 템플릿에서 바로 사용할 수 있습니다:

<a href="{% url 'login' %}">로그인</a>
<a href="{% url 'logout' %}">로그아웃</a>

3️⃣ 비교: 우리가 만든 URL vs Django가 만든 URL

항목 우리가 직접 만든 URL Django 기본 URL

정의 방식 path('about/', views.about, name='about') 내부적으로 이미 path('login/', ...) 형태로 등록됨
URL name 우리가 직접 name 부여 Django가 미리 부여함 ('login', 'logout' 등)
사용 예 {% url 'about' %} {% url 'login' %}

4️⃣ 팁: 로그인 후 리디렉션 설정

사용자가 로그인한 뒤 어느 페이지로 갈지를 설정하려면 settings.py에 다음을 추가합니다:

LOGIN_REDIRECT_URL = '/'

로그인 후 홈 페이지(/)로 자동 이동하게 됩니다.


✅ 요약

항목 설명

{% url 'login' %}이 가능한 이유 django.contrib.auth.urls를 include()했기 때문
login, logout 같은 이름은 어디서 왔나? Django 내부에서 기본 name으로 등록되어 있음
사용 조건 반드시 path('accounts/', include('django.contrib.auth.urls'))가 있어야 함
추가 팁 로그인 후 이동 경로는 LOGIN_REDIRECT_URL로 설정 가능

 

'기술블로그-Django편' 카테고리의 다른 글

✅ 왜 로그인은 자동인데, 회원가입은 우리가 직접 만들어야 할까?  (0) 2025.05.06
✅ Django에서 LOGIN_URL, LOGIN_REDIRECT_URL을 설정했는데, 왜 view에서 또 명시해야 할까?  (0) 2025.05.06
📝 한글 입숨(Hangul Ipsum)이란?  (0) 2025.05.06
✅ WSL에서 pyenv 가상환경을 PyCharm에 연결하는 방법  (0) 2025.05.06
🔁 GitHub 웹 없이 로컬에서 브랜치 병합하는 방법 (chapter_02 → main)  (0) 2025.04.30
'기술블로그-Django편' 카테고리의 다른 글
  • ✅ 왜 로그인은 자동인데, 회원가입은 우리가 직접 만들어야 할까?
  • ✅ Django에서 LOGIN_URL, LOGIN_REDIRECT_URL을 설정했는데, 왜 view에서 또 명시해야 할까?
  • 📝 한글 입숨(Hangul Ipsum)이란?
  • ✅ WSL에서 pyenv 가상환경을 PyCharm에 연결하는 방법
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (627)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (10)
      • 특강 (31)
      • 기술블로그 (32)
      • 기술블로그-Fastapi편 (0)
      • 기술블로그-Django편 (151)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
✅ Django에서 {% url 'login' %}이 가능한 이유 정리
상단으로

티스토리툴바