[Django] App URL mapping

한결·2023년 3월 28일
0

WEB

목록 보기
15/63

프로젝트의 urls.py 파일을 보자

from django.contrib import admin
from django.urls import path
from myapp import views 

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/<str:name>/', views.hello),
]

지금은 app도 myapp(연습용으로 app name을 myapp으로 했지만 app name은 복수형으로 작성하는 것을 추천) 하나고 myapp의 views.py에 함수도 hello 하나여서 간단하게 작성할 수 있지만

수많은 app과 그 각각의 app안에 굉장히 많은 view와 url이 있다면???

그럴때마다 mypjt/urls.py에 url을 다 적게되면 파일이 너무 커질 것이다

따라서, 아래와 같이 각각의 앱이 각자의 urls.py를 가져서 관리하도록 만들자

  • 코드를 구조적으로 짤 수 있음

App URL mapping 예시

1. mypjt/urls.py 수정

# mypjt/urls.py
from django.urls import path, include

urlpatterns = [
    path('myapp/', include('articles:urls')),   
]
  • path('myapp/', include('myapp.urls')), ]
    • myapp/ 아래부터는 myapp/urls.py 가 처리하도록 위임

2. myapp 폴더 안에 urls.py 생성

3. myapp/urls.py에서 처리하도록 만듬

from django.urls import path
from . import views

app_name = 'myapp'
urlpatterns = [
    path('hello/<str:name>/', views.hello),
]
  • 이제는 hello/<str:name>/이 아닌 myapp/hello/<str:name>으로 들어가야함

0개의 댓글