[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/WEB

django 기초 - app 단위별로 url 정리하기

inu 2020. 9. 13. 20:32
반응형

app 단위별로 url을 정리하는 이유

  • django로 프로젝트를 진행하다보면 상당히 많은 url들이 생긴다.
  • 각 url은 각 app들의 views와 연결되기 때문에 프로젝트 규모가 커질수록 상당히 처리하기 복잡해진다.
  • 따라서 각 app과 관련된 url(각 app의 views.py와 연결되는 url)들만 따로 정리하는 것이 좋다.

app 폴더들에 urls.py 생성

  • 먼저 각 app들의 폴더에 urls.py 파일을 만든다. 그리고 아래와 같이 작성한다.
from django.urls import path
from . import views

urlpatterns = [
]
  • 이 곳에 필요한 url들을 작성하게 될 것이다. 해당 app 폴더 내의 views를 사용할 것이기 때문에 'from . import views'도 작성해주었다.

프로젝트 폴더내 기존 urls.py 수정

  • 'from django.urls import include'를 작성해 활용한다.
from django.contrib import admin
from django.urls import path
from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('join/', include('join.urls')),
    path('team/', include('team.urls')),
    path('study/', include('study.urls'))
]
  • 관련 url을 확인할 때 바로 views의 메소드를 처리하는 것이 아니라 우선 각 폴더의 urls을 한 번 더 건너 확인하도록 한다.
  • 위 코드의 경우 'join/', 'team/', 'study/' 에 해당하는 url을 각 폴더의 urls.py에서 참고하도록 한 것이다.

각 urls.py 수정

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index')
]
  • 각 app 폴더에 생성해줬던 urls.py에 최종적으로 참고할 views의 메소드를 기입해준다.
  • include에서 미리 참고했던 주소('join/', 'team/', 'study/' 에 해당하는 부분)은 표기해줄 필요 없다.
반응형