한 개의 HTTP 요청에 대해 1개의 뷰가 호출
urls.py/urlpatterns 리스트에 매핑된 호출 가능한 객체
view 호출 시
HttpRequest
객체url captured values
(현재 요청의 URL로부터 Capture된 문자열들)view 호출에 대한 return값
HttpResponse
객체 리턴view 함수를 만들어주는 클래스
상속과 믹스인 기능을 이용해서 코드 재사용하고 뷰를 체계적으로 구성
HTTP 메소드에 따른 처리 코드를 작성할 때 if 함수 대신 메소드 명으로 코드의 구조가 깔끔
다중 상속 같은 객체지향 기법을 활용해 제네릭 뷰, 믹스인 클래스 등을 사용해 코드의 재사용과 개발 생산성을 높여줌
urls.py에 .as_view()메서드와 함께 사용
장고에서 자주 쓰는 뷰를 미리 만들어 제공
클래스 형으로 구현되어 있기 때문에 상속받아 사용
뷰 클래스를 생성하고 다른 제네릭 뷰의 부모 클래스가 되는 기본 제네릭 뷰
View
: 최상위 부모 제네릭 뷰 클래스
TemplateView
: 주어진 템플릿으로 렌더링
RedirectView
: 주어진 URL로 리다이렉트
객체의 목록 또는 하나의 객체 상세 정보를 보여주는 뷰
DetailView
: 조건에 맞는 하나의 객체 출력
ListView
: 조건에 맞는 객체 목록 출력
폼을 통해 객체를 생성, 수정, 삭제하는 기능을 제공하는 뷰
FormView
: 폼이 주어지면 해당 폼을 출력
CreateView
: 객체를 생성하는 폼 출력
UpdateView
: 기존 객체를 수정하는 폼을 출력
DeleteView
: 기존 객체를 삭제하는 폼을 출력
날짜 기반 객체의 연/월/일 페이지로 구분해 보여주는 뷰
ArchiveIndexView
: 지정 날짜필드 역순으로 정렬된 목록 출력
YearArchiveView
: 주어진 연도에 해당하는 객체 출력
MonthArchiveView
: 주어진 날짜에 해당하는 객체 출력
DayArchiveView
: 주어진 날짜에 해당하는 객체 출력
TodayArchiveView
: 오늘 날짜에 해당하는 객체 출력
DateDetailView
: 주어진 연, 월, 일 PK에 해당하는 객체 출력
공통 옵션 - allow_future
model
: Base View(View, TemplateView, RedirectView) 제외하고 모든 제네릭 뷰에서 사용
queryset
: Base View(View, TemplateView, RedirectView) 제외하고 모든 제네릭 뷰에서 사용
queryset을 사용하면 model 속성은 무시됨
template_name
: TemplateView를 포함한 모든 제네릭 뷰에서 사용
템플릿 파일 명을 문자열로 지정
context_object_name
: 뷰에서 템플릿 파일에 전달하는 context 변수명 지정
paginate_by
: ListView와 날짜 기반 뷰에서 사용
페이징 기능이 활성화 된 경우 페이지 당 출력 항목 수를 정수로 지정
date_field
: 날짜 기반 뷰에 사용
필드의 타입은 DateField / DateTimeField
form_class
: FormView, CreateView, UpdateView에서 폼을 만드는데 사용할 클래스 지정
success_url
: FormView, CreateView, UpdateView, DeleteView에서 폼에 대한 처리가성공한 후 리다이렉트할 URL 주소
def get_queryset()
- BaseView(View, TemplateView, RedirectView)를 제외하고 모든 제네릭 뷰에서 사용
- 디폴트는 queryset 속성을 반환
- queryset 속성이 지정되지 않은 경우 모델 매니저 클래스의 all() 메소드를 호출 해 QuerySet 객체를 생성해 반환
def get_context_data(**kargs)
뷰에서 템플릿 파일에 넘겨주는 context 데이터를 추가하거나 변경하는 목적으로 오버라이딩
def form_valid(form)
model
속성 변수 지정
queryset
속성 변수 지정
def get_queryset()
메소드 오버라이딩