"3. 클래스형 뷰"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: == 개요 == 장고의 뷰는 기본적으로 함수로 만들어진다. 이를 FBV(Function Based View)라 부른다. 이 외에 클래스를 이용하여 기본적인 기능들을...)
(차이 없음)

2021년 5월 28일 (금) 23:37 판

1 개요

장고의 뷰는 기본적으로 함수로 만들어진다. 이를 FBV(Function Based View)라 부른다.

이 외에 클래스를 이용하여 기본적인 기능들을 한번에 구현한 CBV(Class Based View)가 있다.(제네릭 뷰라 부르기도 한다.)

복잡한 코드 없이도 뷰를 손쉽게 만들 수 있다는 장점이 있다. 자동화되어 있다는 것은 좋지만, 구현되지 않은 기능에 대해선 자유도가 떨어진다.

1.1 기본사용

  1. from django.views.generic import 필요한뷰형태로 임포트하여 사용한다.
  2. urls.py에서 view를 불러올 때 함수가 아니므로, 뷰이름.as_view() 형태로 클래스 내의 메서드를 매칭시켜야 한다.

2 제네릭 뷰

2.1 ListView

객체목록을 띄우는 뷰. 다음과 같이 사용한다.

단계 코드
views.py 작성
from django.views.generic import ListView
from models import 모델명  # 리스트를 볼 모델을 불러온다.

class List(ListView):
    model = 모델명  # 리스트를 볼 모델을 지정한다.
    template_name = '사용할템플릿명'  # 이걸 지정하지 않으면 모델명_list.html 이라는 이름을 가진 템플릿을 매칭한다.
    ordering = '-pk'  # 정렬할 속성을 지정한다. '-'를 붙이면 역순으로 정렬한다는 의미.
템플릿 작성
<!---->

{% for post in 모델명_list %} <!--객체들이 모델명_list 안에 담겨 순회한다.-->
...
{% endfor %}

이외 다양한 뷰가 있다.