Generic View
장고에서 기본적으로 제공하는 뷰의 형태
개발의 속도를 더욱 빠르게 만들어주어 편리하게 개발할 수 있다는 장점
Generic View 종류
- Base View
- View : 최상위에 있는 부모 제네릭 뷰 클래스
- Template View : 주어진 템플릿으로 렌더링해주는 뷰
- Redirect View : 주어진 URL로 Redirect해주는 기능의 뷰 - Generic Display View
- ListView : 조건에 맞는 객체들의 목록을 보여주는 뷰
- DetailView : 조건에 맞는 하나의 세부 객체들을 보여주는 뷰 - Generic Edit View
- FormView : 폼이 주어지면 해당 폼을 출력하는 뷰
- CreateView : 새로운 객체를 폼을 출력하는 뷰
- UpdateView : 기존의 객체를 수정하는 폼을 출력하는 뷰
- DeleteView : 기존에 있는 객체를 삭제하는 폼을 출력하는 뷰 - Generic Date View
- YearArchiveView : 주어진 연도에 해당하는 객체를 모아줌
- MonthArchiveView : 주어진 월에 해당하는 객체를 모아줌
- DayArchiveView : 주어진 날짜에 해당하는 객체를 모아줌
- TodayArchiveView : 오늘 날짜에 해당하는 객체를 모아줌
- DateDetailView : 특정한 연, 월, 일 등에 해당하는 객체를 모아줌
Generic View 사용 방법
Import 수행 (활용 예)
from django.views.generic import ListView, DetailView
#Generic Date View import
from django.views.generic.dates import ArchiveIndexView, YearArchiveView, MonthArchiveView
from django.views.generic.dates import DayArchiveView, TodayArchiveView
Generic Display View
어떤 테이블에서 객체 리스트를 가져올 것인지 지정해주기
> model = Post
템플릿 파일 위치 지정
> template_name = ‘blogapp/post_all.html’
템플릿 파일로 넘겨주는 객체 리스트의 이름 지정
> context_object_name = ‘posts’
한 페이지에서 보여주는 페이지 갯수 지정 (페이징)
> paginate_by = 2
class PostLV(ListView):
#기본적으로 모든 View를 짤 때, model = Post로 지정해주어서 어떤 테이블에서 긁어오는지 지정해주어야 한다
model = Post
#템플릿 파일을 지정해준다
template_name = 'blogapp/post_all.html'
#템플릿 파일로 넘겨주는 객체 리스트에 대한 컨텍스트 변수명을 posts로 지정해준다
context_object_name = 'posts'
#한 페이지에 보여주는 객체 리스트의 갯수를 지정해준다 (페이징 기능)
paginate_by = 2
Generic Data View
어떤 테이블에서 객체 리스트를 가져올 것인지 지정해주기
> model = Post
기준으로 할 날짜 table 지정해주기
> date_field = ‘modify_date’
object_list를 템플릿에서 사용할 수 있도록 넘겨주려면
> make_object_list = True //default = False
class PostYAV(YearArchiveView):
model = Post
date_field = 'modify_date'
make_object_list = True
class PostMAV(MonthArchiveView):
model = Post
date_field = 'modify_date'
'Development (Python, Django, C..)' 카테고리의 다른 글
[Python] 모니터링 구현을 위한 소켓통신 (0) | 2020.03.19 |
---|---|
[Django] Built-in template tags and filters (0) | 2020.02.26 |
[Django] Model 관리 (0) | 2020.02.20 |
[Django] Django Application 생성(analyze) (0) | 2020.02.19 |
[Django] DJANGO + APACHE 연동 (0) | 2020.02.18 |