일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 장고 프로젝트 순서
- 타사인증
- Bookmark
- mongodb
- 개발
- 장고 프로젝트
- Django Blog
- 알고리즘
- 예술영화추천
- MYSQL
- Blog
- Algorithm
- JavaScript
- til
- 파이썬 웹프로그래밍 장고
- 북마크만들기
- passport.js
- 프로젝트
- Node.js
- 독립영화플랫폼
- MyPick31
- 장고 개발 순서
- 자바스크립트
- Exercism
- join()
- Django
- 장고
- ART_Cinema
- 북마크앱
- python
- Today
- Total
Juni_Dev_log
북마크 앱 만들기 ⑤ "뷰(View)" with Django 본문
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
(다음 포스팅)
2020/08/18 - [Project/Bookmark APP 만들기 (Django)] - 북마크 앱 만들기 ⑥ "템플릿(Template)" with Django
'Project > Bookmark APP 만들기 (Django)' 카테고리의 다른 글
북마크 앱 만들기 ⑦ "지금까지의 작업 확인하기" with Django (0) | 2020.08.18 |
---|---|
북마크 앱 만들기 ⑥ "템플릿(Template)" with Django (0) | 2020.08.18 |
북마크 앱 만들기 ④ "URLconf" with Django (0) | 2020.08.18 |
북마크 앱 만들기 ③ "모델(Model)" with Django (0) | 2020.08.18 |
북마크 앱 만들기 ② "뼈대" with Django (0) | 2020.08.18 |