일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- FIT XR
- 3줄정리
- 사이드
- 읽기
- 프로젝트
- leetcode
- 개발자
- 리얼 클래스
- 링피트
- 영어원서읽기
- 영어공부
- 괜찮음
- realclass
- 파비최
- 미드시청
- 만화도
- 잡생각
- 월간
- Writing
- 30분
- Daily Challenge
- 화상영어
- Problem Solving
- 쓰릴오브파이트
- English
- 뭐든
- 스탭퍼
- 운동
- 10분
- 매일
- Today
- Total
파비의 매일매일 공부기록
Two Scoops of Django - #10장 본문
이번장은 클래스 기반 뷰의 모범적인 이용에 대한 내용이다.
요즘 사실 좀 멘붕이 오는데, 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 |