파비의 매일매일 공부기록

Two Scoops of Django - #10장 본문

Study/Python

Two Scoops of Django - #10장

fabichoi 2021. 6. 11. 23:30

이번장은 클래스 기반 뷰의 모범적인 이용에 대한 내용이다.

요즘 사실 좀 멘붕이 오는데, DRF(Django REST Framework)에 대한 이해도가 부족해서다.

최근 업무를 해내기는 해내는데 삽질이 너무 많다.

 

이번장은 DRF와는 직접적이지는 않지만 그래도 클래스 기반 뷰에 대한 내용이라 꽤 도움이 될 거라 예상하며 끄적여본다.

 

뷰 클래스가 내장 함수를 반환하는 as_view() 클래스 메서드를 제공.

django.views.generic.view에서 구현되며, 모든 클래스 기반 뷰는 이 클래스를 직간접적으로 상속받아 이용.

또한 제네릭 클래스 기반 뷰를 제공하며, 그 장점을 최대한 살리는 중.

 

1. 클래스 기반 뷰를 이용할 때의 가이드라인

 - 뷰 코드의 양은 적으면 적을수록 좋음. 간단명료해야 함. 뷰 안에서 같은 코드 반복적 이용 x

 - 뷰는 presentation 로직에서 관리. business 로직은 모델에서 처리. 아주 특별한 경우에는 form에서 처리.

 - 403, 404, 500 에러 핸들링에 클래스 기반 뷰는 이용하지 않음.

 - 믹스인은 간단명료해야 함.

 

2. 클래스 기반 뷰와 믹스인 이용하기

 - 믹스인 : 실체화된 클래스가 아니라 상속해 줄 기능들을 제공하는 클래스. 

 - 파이썬의 메서드 처리 순서에 기반을 둔 상속에 관한 규칙

  i. 장고가 제공하는 기본 뷰는 '항상' 오른쪽으로 진행

  ii. 믹스인은 기본 뷰에서부터 왼쪽으로 진행

  iii. 믹스인은 파이썬의 기본 객체 타입을 상속해야만 함

 - iii은 실무에선 아닌 경우도 있는 듯하다. 기본 객체 타입을 상속한 걸 또 상속하면 괜찮은 건가..?

 

3. 어떤 장고 제네릭 클래스 기반 뷰를 어떤 태스크에 이용할 것인가?

 - 책에 각 View에 따른 목적을 정리해 놓았다. 크게 특이한 점은 없는 듯

 

4. 장고 클래스 기반 뷰에 대한 일반적인 팁

 - django-braces의 LoginRequiredMixin을 이용해서 인증된 사용자만 접근할 수 있도록 구성

 - 뷰에서 유효한 폼을 이용하여 커스텀 액션 구현 : form_valid()를 오버 라이딩해서 쓰라는 이야기

 - 뷰에서 부적합한 폼을 이용하여 커스텀 액션 구현 : form_invalid()를 오버 라이딩해서 쓰라는 이야기

 - 뷰 객체 이용하기 : 뷰 객체를 이용해서 다른 메서드나 속성에서 호출이 가능하도록 구성

 

5. 제네릭 클래스 기반 뷰와 폼 사용

 - 제네릭 클래스 기반 뷰와 폼 사용하는 예제를 보여준다. 특별한 눈에 띄어서 정리할 내용은 없어서 패스.

 

6. django.views.generic.View 이용

 - 믹스인을 활용해서 커스텀 로직을 효율적으로(간단하게) 처리하는 방법에 대해 설명.

 

저자는 클래스 기반 뷰와 폼 패턴을 잘 다루면 유용할 거라고 조언한다.

 

책을 읽기 전에 기대했던 내용은 별로 없었다. 그냥 단순한 클래스 뷰 사용법에 대한 이야기였다.

반응형

'Study > Python' 카테고리의 다른 글

Two Scoops of Django - #12장  (0) 2021.06.13
Two Scoops of Django - #11장  (0) 2021.06.12
Two Scoops of Django - #9장  (0) 2021.06.10
Two Scoops of Django - #8장  (0) 2021.06.09
Two Scoops of Django - #7장  (0) 2021.06.08
Comments