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파일의 매핑정보를 읽어서 처리하라는 의미입니다.
이렇게하면 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 |