티스토리 뷰

반응형

 

 

 

URL Dispatcher

- HTTP request가 들어올 때마다, 등록된 urlpatterns 상의 매핑 리스트를 처음부터 순차적으로 훝으며 URL 매칭을 한다

 

- 매칭되는 URL Rule이 다수 존재해도 처음 매칭되는 Rule 만을 사용한다.

 

- 매칭되는 URL Rule이 없을 경우 404(Page Not Found) Error 응답을 발생한다.

 

 

 

 

 

 

 

Django.conf.urls.url() (Django 1.x 버전)

- Django 1.x 버전의 url() 메소드가 regex 사용을 위한 re_path()가 되고, path가 추가되었다. 

 

 

 

 

 

 

 

 

Django.urls.path()

- 기본 지원되는 Path converters를 통해 정규표현식 기입이 간소화되었다. 

 

 

 

 

 

 

 

urlpatterns 예시

- Django 1.x Version : url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive)

 

    r : raw를 의미하며 \를 사용할 때 escape로 \\ 할 필요 없이 \을 directory 검색을 할 수 있는 문자로 볼 수 있게 해주는 Python 기본 기능이다.

 

   ?P : python 정규표현식 기본 문법

 

   <year> : < > 안에 들어있는 문자를 변수이름으로해서 정규표현식 내용을 views.- 에 넘기겠다.

 

 

- Django 2.x 이후 Version : path('articles/<int:year>/', views.year_archive)

 

    <int:year> : url의 이 부분에 해당하는 값을 int형의 year란 이름의 변수로 받아 views.- 에 넘기겠다.

 

    cf) 2.x 이후 Version에서도 기존과 같이 정규표현식을 사용할 수 있다 : re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive)

 

 

 

 

 

 

 

 

마무리

 

- 프로젝트 진행이 자주 있다면 Custom Path Converter를 만들어 사용할 수 있다.

 

 

 

 

반응형
댓글