urls.py는 메인 프로젝트인 app 폴더 하위에 있습니다. URL을 먼저 작성한 뒤, View 파트를 이어서 작성해보도록 하겠습니다.

blog의 View의 create, detail, update, delete 뷰와 함께 연결될 URL을 추가해야 합니다.

FBV(Function Based View)

먼저, FBV로 작성된 view에 대응하는 urls.py부터 작성해보도록 하겠습니다.

# blog/urls.py
from django.urls import path
from . import views

app_name = 'blog'

urlpatterns = [
    path('', views.post_list, name='list'),
    path('create/', views.post_create, name='create'),
    path('<int:pk>/', views.post_detail, name='detail'),
    path('update/<int:pk>/', views.post_update, name='update'),
    path('delete/<int:pk>/', views.post_delete, name='delete'),
]

URL은 각 함수들의 이름과 함께 매칭할 수 있습니다.

CBV(Class Based View)

이번에는 CBV로 작성된 view에 대응하는 urls.py을 작성해보도록 하겠습니다.

# blog/urls.py
from django.urls import path
from blog.views import PostListView, PostCreateView, PostDetailView, PostUpdateView, PostDeleteView

app_name = 'blog'

urlpatterns = [
    path('', PostListView.as_view(), name='list'),
    path('create', PostCreateView.as_view(), name='create'),
    path('<int:pk>/',PostDetailView.as_view(), name='detail'),
    path('update/<int:pk>/', PostUpdateView.as_view(), name='update'),
    path('delete/<int:pk>/', PostDeleteView.as_view(), name='delete')
]

CBV의 경우 클래스 이름으로 뷰를 연결시켜주는 것은 FBV와 같지만 뒤에 .as_view()를 붙여주어야 합니다.