1,688 바이트 추가됨
, 2021년 5월 28일 (금) 23:37
== 개요 ==
장고의 뷰는 기본적으로 함수로 만들어진다. 이를 FBV(Function Based View)라 부른다.
이 외에 클래스를 이용하여 기본적인 기능들을 한번에 구현한 CBV(Class Based View)가 있다.(제네릭 뷰라 부르기도 한다.)
복잡한 코드 없이도 뷰를 손쉽게 만들 수 있다는 장점이 있다. 자동화되어 있다는 것은 좋지만, 구현되지 않은 기능에 대해선 자유도가 떨어진다.
=== 기본사용 ===
# <code>from django.views.generic import 필요한뷰</code>형태로 임포트하여 사용한다.
# urls.py에서 view를 불러올 때 함수가 아니므로, <code>뷰이름.as_view()</code> 형태로 클래스 내의 메서드를 매칭시켜야 한다.
== 제네릭 뷰 ==
=== ListView ===
객체목록을 띄우는 뷰. 다음과 같이 사용한다.
{| class="wikitable"
|+
!단계
!코드
|-
|views.py 작성
|<syntaxhighlight lang="python">
from django.views.generic import ListView
from models import 모델명 # 리스트를 볼 모델을 불러온다.
class List(ListView):
model = 모델명 # 리스트를 볼 모델을 지정한다.
template_name = '사용할템플릿명' # 이걸 지정하지 않으면 모델명_list.html 이라는 이름을 가진 템플릿을 매칭한다.
ordering = '-pk' # 정렬할 속성을 지정한다. '-'를 붙이면 역순으로 정렬한다는 의미.
</syntaxhighlight>
|-
|템플릿 작성
|<syntaxhighlight lang="html+django">
<!---->
{% for post in 모델명_list %} <!--객체들이 모델명_list 안에 담겨 순회한다.-->
...
{% endfor %}
</syntaxhighlight>
|}
이외 다양한 뷰가 있다.
[[분류:장고 뷰]]