Django 2.0 노트- 5. URL 요청 프로세스

1. Django의 request process

  1. 요청을 받으면 Url설정 모듈을 settgins.py 설정파일의 ROOT_URLCONF 값을 통해 찾습니다.
  2. 하지만 request 받을 때 HttpRequest 속성에 urlconf 속성이 있다면 ROOT_URLCONF 값을 무시하고 urlconf 값으로 대체합니다.
  3. Django는 urlpatterns 변수를 찾습니다.
    • django.urls.path() 또는 django.urls.re_path() 객체로 이루어진 파이썬 리스트여야합니다.
  4. Django는 각 URL 패턴을 순서대로 실행하고 요청된 URL과 일치하는 첫번째 패턴에서 멈춥니다.
  5. 첫번째로 URL 패턴이 매치되면, Django는 함수 또는 class-based-view 로 이루어진 view를 호출하며 아래의 인자를 전달합니다.
    • HttpRequest객체
    • 위치 인자 제공
      • re_path(r'^position/(010[1-9]\d{7})$', views.get_cellphone)
    • 키워드 인자 제공
      • path('<username>/', views.get_list_by_user)
      • re_path(r'^keword/(?P<cellphone>010[1-9]\d{7})$', views.get_cellphone),
  6. Url이 일치하지 않거나 프로세스 도중 에러 발생 시, 오류 페이지 호출