URLconf (urls.py)
- Django에서 URL을 처리하기 위해서는 URLconf 모듈 즉 urls.py를 작성
from django.urls import path
from . import views
urlpatterns = [
path('URL', views.view)
]
URL 처리 순서
- 요청이 들어오면 Django는 맨 처음 사용할 URLConf 모듈을 찾음
- 변경하지 않았다면 프로젝트 앱 내 settings.py의 ROOT_URLCONF 설정을 사용
- ROOT_URLconf로 정의된 URLConf 모듈을 보고 urlpatterns 리스트 안쪽의 django.urls.path() 함수를 순서대로 실행
- 요청과 일치하는 URL 패턴이 있다면 django.urls.path() 함수에 따라 view를 호출하거나, 일치하는 URL 패턴 다음의 URL을 하위 URLconf 모듈로 넘김
from django.urls import path
from django.urls import include
from . import views
urlpatterns = [
path('music/', views.player),
path('video/', include('videoApp.urls')),
]
path 함수
django.urls.path
path(route, view, kwargs=None, name=None)
route
- URL 문자열을 인수로 받으며 경로 변수(Path Converter)를 사용하여 URL의 일부를 view의 인수로 보낼 수 있음
Path converters
- Django에서 기본으로 제공하는 경로 변환기 이하 경로 변수는 5가지가 있음
- str : 경로 구분 기호(/)를 제외한 모든 문자열과 매칭
- int : 0 또는 양의 정수와 매칭
- slug : 문자, 숫자, 하이픈(-), 밑줄(_)로 구성된 문자열과 매칭
- uuid : 범용 고유 식별자(UUID)와 매칭
- path : 경로 구분 기호(/)를 포함한 모든 문자열과 매칭
view
- 함수형 view 또는 클래스 기반 view가 들어갈 수 있음
- include를 사용해서 다른 URLconf 모듈로 연결할 수도 있음
kwargs
name
- path 함수가 가지는 URL 패턴에 이름을 붙여 주기 위해 사용
- URL을 직접 템플릿에 적지 않게 해주고 URL을 직관적으로 참조할 수 있게 해줌
공식문서