Back-end/Django

Django URL 분리_include() 사용

sonzwon 2022. 9. 25. 15:59

# URL분리

우리는 장고의 여러 APP을 사용하여 개발하게 되는데, 이때 URL은 APP마다 따로 관리해주는 것이 좋습니다. 그래서 URL을 분리해서 사용하게 되는데, 기억해야할 것은 항상 페이지 요청은 config 디렉토리을 기반으로 동작하므로 config/urls.py에 분리된 URL파일들을 정의해줘야합니다.

path 작성법은 path( '<URL>/', <매핑될 view 함수>) 였는데, 
분리된 URL을 위한 path 작성은 from django.urls import include해서 path( '<URL>/', include('<APP>.urls') )해주면 된다.

예를 들어, path('pybo/', include('pybo.urls'))를 넣어주면, http://127.0.0.1:8000/pybo/ 페이지를 요청하면 pybo/urls.py파일의 매핑정보를 읽어서 처리하라는 의미입니다.

config / urls.py
pybo / urls.py

이렇게하면 url이 추가될 때 마다 config/urls.py를 수정하지 않고 pybo/urls.py만 수정해서 파이보 관련 url들을 관리할 수 있습니다. (APP을 생성할 때, urls.py파일은 자동 생성되지 않으므로 새로 생성해줘야함)

  config/urls.py pybo/urls.py 페이지 요청
분리 전 path('pybo/hello/', views.index) - http://127.0.0.1:8000/pybo/hello
분리 후 path('pybo/', include('pybo.urls') path('hello/', views.index) http://127.0.0.1:8000/pybo/hello