웹/Django

장고 프로젝트 순서2 - 뷰

밍래그로프 2020. 12. 14. 18:39

클래스형 뷰로 정의

 

1.인덱스 페이지

인덱스 페이지는 TemplateView 를 상속해서 구현하면 편하다

오버라이딩이기 때문에 template_name 변수를 지정해야한다.

템플릿 시스템으로 넘겨줄 컨텍스트 변수가 있으면 def get_context_data() 재정의 한다.

변수는 context= super().get_context_data() 재정의 이때 super() 꼭 쓰자

return도 필수이다.

 

2.리스트뷰 페이지

ListView를 상속받는다.

model 필드만 재정의하면 된다.

디폴트 속성이 있는데 컨텍스트 변수로 object_list를 사용하고

템플릿 파일을 소문자모델명_list.html 로 사용한다.

예시 

class BookList(ListView):

    model = Book

#Book에 있는 테이블을 가져와 object_list 라는 컨텍스트 변수 구성,

#템플릿 파일 어플리케이션명/book_list.html

 

3.디테일뷰 페이지

디폴트 속성, 컨텍스트 변수명 object 

템플릿 파일 소문자모델명_detail.html