📌 Django URL 패턴 등록 순서 완전 정리

2025. 5. 14. 11:23·기술블로그-Django편

📌 Django URL 패턴 등록 순서 완전 정리


✅ 1. 왜 URL 순서가 중요할까?

Django는 urlpatterns 리스트를 위에서 아래로 순차적으로 검사합니다.

✔️ 가장 먼저 매칭되는 URL이 있으면 해당 뷰로 이동하고, 이후 항목은 무시합니다.

따라서 동적 패턴은 가장 마지막에 두어야 예상한 라우팅이 정확하게 작동합니다.


✅ 2. 올바른 URL 등록 순서 예시

urlpatterns = [
    path('admin/', admin.site.urls),                        # 1. 정적 경로
    path('', views.home_view, name='home'),                # 2. 홈
    path('short-urls/', views.short_url_create_view),      # 3. 폼 처리
    path('', include('shortener.urls')),                   # 4. 앱 URL
    path('<str:code>/', views.redirect_view),              # 5. ✅ 마지막에 동적 경로
]

❌ 잘못된 예시

urlpatterns = [
    path('<str:code>/', views.redirect_view),  # ❌ 모든 경로를 가로챔
    path('short-urls/', views.short_url_create_view),
]

🔴 이렇게 하면 /short-urls/ 요청도 <str:code>/로 처리됨 → 원하지 않은 라우팅 발생


🧭 시각적 흐름도

[요청: /short-urls/]
     ↓
1. /admin/          ❌ 불일치
2. /               ❌ 불일치
3. /short-urls/    ✅ 일치! → 해당 뷰 실행
4. ... 이후 무시

[요청: /abc/]
     ↓
1. /admin/          ❌
2. /                ❌
3. /short-urls/     ❌
4. /abc/ (동적)     ✅ → redirect_view 실행

✅ 요약

등록 순서 설명

정적 URL 먼저 등록 (/admin/, /short-urls/)
동적 URL 반드시 맨 마지막 (<str:code>/)

✔️ 올바른 순서를 지키면 원하는 URL 경로만 정확히 처리 가능합니다.

✔️ 반대로 순서를 어기면 모든 경로를 동적 패턴이 가로채는 버그 발생할 수 있어요 ⚠️


 

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

🔍 Django에서 Model.objects.get(code=code)가 뭔 뜻이야?  (0) 2025.05.14
🧩 Django의 request 객체 쉽게 이해하기 (왜 첫 번째 인자?)  (0) 2025.05.14
📨 Django Form 동작 흐름 완전 정리  (0) 2025.05.14
🚦 라우팅(Routing) vs 매핑(Mapping) 완전 정리  (0) 2025.05.14
📡 클라이언트-서버 요청/응답 흐름 완전 정리  (0) 2025.05.14
'기술블로그-Django편' 카테고리의 다른 글
  • 🔍 Django에서 Model.objects.get(code=code)가 뭔 뜻이야?
  • 🧩 Django의 request 객체 쉽게 이해하기 (왜 첫 번째 인자?)
  • 📨 Django Form 동작 흐름 완전 정리
  • 🚦 라우팅(Routing) vs 매핑(Mapping) 완전 정리
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (672)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (38)
      • 기술블로그-Fastapi편 (28)
      • 기술블로그-Django편 (152)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📌 Django URL 패턴 등록 순서 완전 정리
상단으로

티스토리툴바