사용자의 request를 장고가 실행하는 알고리즘:
- 사용한 "root URLconf" 모듈을 정한다. (settings.py의 ROOT_URLCONF 변수에서 해당 프로젝트의 최상단의 url 정보파일이 있는 파일명을 명시해준다.)
- 장고는 "root URLconf" 파일을 불러들여(로드), 파일 안의 urlpatterns 변수를 찾는다. (django.urls.path(), django.urls.re_path())
- 사용자의 request는 장고의 HttpRequest라는 인스턴스로 전달이 됨. HttpRequest 인스턴스의 속성에는 "path_info"가 있음(HttpRequest.path_info)
"2번"에서 확인한 urlpatterns 안에 있는 url과 일치하는 지 찾는다.
- 한번 url패턴이 일치하면, 장고는 url패턴과 매칭된 뷰/함수 등을 실행시킨다.
- 만약 어떠한 팬턴과도 일치하지 않으면, 예외가 발생한다.
예시들:
URLconf는 url만 찾는다. method는 고려하지 않는다.
The URLconf doesn’t look at the request method. In other words, all request methods – POST, GET, HEAD, etc. – will be routed to the same function for the same URL.
Reference