현재까지는 1개의 앱을 가지고 작업해 왔습니다.

하지만 기능들이 여러개 생겨나면서 url과 views, template 등 관리해야 할 것들이 많아질 것입니다.

쉬운 관리를 위해 보통 기능별로 App을 만들어 관리합니다.

예를 들어 로그인 관련 / 게시물 관련 / 채팅기능 관련 이렇게 분리를 하게 됩니다.

App을 따로 관리하기 위해서는 추가적인 작업이 필요합니다.

views는 App 별로 생성이 되어있고, templates 폴더는 만들어 주기에 다른 작업이 필요 없습니다.

하지만 url에 관한 작업이 필요합니다.

URL 작업

url을 정리해봅시다. blog 관련 path들은 blog 폴더 안에서 해결하도록 말이죠.

  1. 만드신 앱 폴더 안에 urls.py파일을 만듭니다.

  2. project 안에 있는 urls.py내용을 복사해서 새로만든 urls.py 파일에 넣어줍니다.

  3. blog 관련 path 들과 import 관련 내용들을 싹다 정리합시다.

    app_name**/urls.py**

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('<int:num>/', views.detail, name='detail'),
        path('new/', views.new, name='new'),
        path('create/', views.create, name='create'),
    		path('update/<int:num>', views.update, name='update'),
    		path('delete/<int:num>', views.delete, name='delete'),
    		path('album/', views.album, name='album')
    ]
    
  4. project 안의 urls.py를 수정해줍니다.

위 순서대로 코드를 수정하면 완료입니다. django는 url요청이 들어오면 urls.py의 urlpatterns에 있는 내용과 비교해 view로 연결해줍니다.

위 과정에서 import**include**는 그 작업을 분리다른 urls.py로 넘겨주는 작업을 하는 친구입니다.

  1. url 요청이 들어오면 제일 먼저 project에 있는 urls.py에서 urlpatterns을 매칭합니다.
  2. 그 중에서 앞이 'blog/'로 시작되는 요청이라면, app 폴더에 있는 urls.py에서 매칭해서 view로 넘겨주게 됩니다.

이렇게 해주면 해당 app 별로 url 처리를 분할할 수 있어, project 안의 urls.py를 어지럽힐 일이 줄어들게 됩니다.