Juni_Dev_log

북마크 앱 만들기 ④ "URLconf" with Django 본문

Project/Bookmark APP 만들기 (Django)

북마크 앱 만들기 ④ "URLconf" with Django

Juni_K 2020. 8. 18. 19:04

URLconf는 mysite/urls.py 와 bookmark/urls.py 2개의 파일에서 코딩할 수 있지만, 이 예제는 간단하기 때문에 하나의 파일로 코딩을 진행한다.

 

북마크 앱의 URL은 간단하다. Admin 사이트까지 포함해서 3개의 URL과 뷰가 필요하다.

그 내용은 urls.py 파일에 코딩하면 된다.

 

from django.contrib import admin
from django.urls import path
# 필요한 소스 모듈과 함수를 임포트한다.
from bookmark.views import BookmarkLV, BookmarkDV
# URLconf 에서 뷰를 호출하므로, 뷰 모듈의 관련 클래스를 임포트한다.


# path() ㅎ마수는 route,view 2개의 필수 인자와 kwargs.name 2개의 선택 인자를 받는다.
# 여기서 장한 name 인자값은 템플릿 파일에서 많이 사용된다.
urlpatterns = [
		#장고의 Admin 사이트에 대한 URLconf 는 이미 정의되어있다. Admin 사이트를 사용하기 위해서 항상 이렇게 정의해야한다.
    path('admin/', admin.site.urls),

    #class-based views
    path('bookmark/',BookmarkLV.as_view(),name='index'),
    path('bookmark/<int:pk>/', BookmarkDV.as_view(),name='detail'),
]

클래스형 뷰가 간단한 경우는 views.py 파일에 코딩할 필요 없이, URLconf 에서 뷰 및 뷰 처리에 필요한 파라미터를 모두 지정할 수 있다.

 

이렇게 views.py 파일을 작성하지 않아도 된다는 장점이 있어서, 이 방법을 많이 사용하는 편이다.

하지만, 여기에서는 views.py 가 간단하더라도 views.py 에 파일을 코딩하는 것을 권장한다.

뷰 로직은 URLconf 가 아니라 views.py 파일에 작성하는 것이 향후 확장성이나 모듈의 임포트 관계를 단순하게 유지하는 장점이 있기 때문이다.

 

(참고 : views.py 를 작성하지 않고 urls.py 에 한 번에 작성할 수 있는 방법)

from django.contrib import admin
from django.urls import path
from bookmark.views.generic import BookmarkLV, BookmarkDV
from bookmark.models import Bookmark

urlpatterns = [
    path('admin/', admin.site.urls),

		# urls with view definition
    path('bookmark/',ListView.as_view(model=Bookmark),name='index'),
    path('bookmark/<int:pk>/', DetailView.as_view(model=Bookmark),name='detail'),
]

 


(이전 포스팅)

2020/08/18 - [Project/Bookmark APP 만들기 (Django)] - 북마크 앱 만들기 ③ "모델(Model)" with Django

 

북마크 앱 만들기 ③ "모델(Model)" with Django

모델 작업은 데이터베이스에 테이블을 생성하도록 해주는 작업이다. 1. 테이블 정의 북마크 앱은 Bookmark 테이블 하나만 필요하다. 테이블은 models.py에 정의한다. (bookmark/models.py) class Bookmark(models..

juni-dev-log.tistory.com

(다음 포스팅)

2020/08/18 - [Project/Bookmark APP 만들기 (Django)] - 북마크 앱 만들기 ⑤ "뷰(View)" with Django

 

북마크 앱 만들기 ⑤ "뷰(View)" with Django

URLconf를 코딩하면서, 뷰를 클래스형으로 정의하기 위해 각 URL에 따른 해당 클래스 및 as.view()를 메서드로 지정했다. 이제 지정한 클래스 뷰를 코딩하자. 클래스 형 뷰를 코딩할 때, 제일 먼저 고��

juni-dev-log.tistory.com

 

Comments