3. 클래스형 뷰
1 개요
장고의 뷰는 기본적으로 함수로 만들어진다. 이를 FBV(Function Based View)라 부른다.
이 외에 클래스를 이용하여 기본적인 기능들을 한번에 구현한 CBV(Class Based View)가 있다.(제네릭 뷰라 부르기도 한다.)
복잡한 코드 없이도 뷰를 손쉽게 만들 수 있다는 장점이 있다. 자동화되어 있다는 것은 좋지만, 구현되지 않은 기능에 대해선 자유도가 떨어진다.
1.1 기본사용
from django.views.generic import 필요한뷰
형태로 임포트하여 사용한다.- 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 %}
|
이외 다양한 뷰가 있다.