Juni_Dev_log

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

Project/Bookmark APP 만들기 (Django)

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

Juni_K 2020. 8. 18. 19:09

URLconf를 코딩하면서, 뷰를 클래스형으로 정의하기 위해 각 URL에 따른 해당 클래스 및 as.view()를 메서드로 지정했다.

이제 지정한 클래스 뷰를 코딩하자.

클래스 형 뷰를 코딩할 때, 제일 먼저 고려해야할 사항은 어떤 제네릭 뷰를 사용할 것인가 이다.

개발하고자 하는 애플리케이션의 로직을 분석해보고 가장 적합한 제네릭 뷰를 선택할 수 있어야 한다.

ListView와 DetailView 제네릭 뷰를 선택해서 사용한다.

  • Bookmark 테이블에서 여러 개의 레코드를 가져오는 로직이 필요하기 때문에, ListView 선택

  • Bookmark 테이블에서 한 개의 레코드를 가져오는 로직인 필요하기 때문에, DetailView 선택

(bookmark/views.py)

from django.views.generic import ListView, DetailView
from bookmark.models import Bookmark

# Create your views here.
class BookmarkLV(ListView):
    model = Bookmark

class BookmarkDV(DetailView):
    model = Bookmark
  • 클래스형 제네릭 뷰를 사용하기 위해서 ListView, DetailView 클래스를 임포트 한다.

  • 테이블 조회를 위해서 모델 클래스를 임포트 한다.

  • Bookmark 테이블의 레코드 리스트를 보여주기 위한 뷰로서, ListView 제네릭 뷰를 상속받는다. 명시적으로 지정하지 않아도 장고에서는 디폴트로 알아서 지정해주는 속성이 2 가지 있다.

    '컨텍스트 변수(object_list)', '템플릿 파일명 (모델명 소문자_list.html)' 이름으로 지정한다.

  • Bookmark 테이블의 특정 레코드에 대한 상세 정보를 보여주기 위한 뷰로서, DetailView 제네릭 뷰를 상속받는다.

    '컨텍스트 변수(object)', '템플릿 파일명(모델명 소문자_detail.html)' 이름으로 지정한다.


(이전 포스팅)

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

 

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

URLconf는 mysite/urls.py 와 bookmark/urls.py 2개의 파일에서 코딩할 수 있지만, 이 예제는 간단하기 때문에 하나의 파일로 코딩을 진행한다. 북마크 앱의 URL은 간단하다. Admin 사이트까지 포함해서 3개의 U

juni-dev-log.tistory.com

(다음 포스팅)

2020/08/18 - [Project/Bookmark APP 만들기 (Django)] - 북마크 앱 만들기 ⑥ "템플릿(Template)" with Django

 

북마크 앱 만들기 ⑥ "템플릿(Template)" with Django

① bookmark_list.html 템플릿 작성하기 북마크 리스트를 화면에 보여주는 템플릿 파일을 코딩할 것이다. bookmark/templates/bookmark 디렉터리 하위에 템플릿 파일을 둬야 한다. (bookmark_list.html)

juni-dev-log.tistory.com

 

Comments