Django의 MTV (Model - Template - View) 에서 View를 작성하는 방법은 다음 두 가지가 존재
- CBV (Class Based View)
- FBV (Function Based View)
두 방법에 대한 작성 예시와 장단점을 알아보려고 한다.
1. CBV vs FBV 장단점 비교
장점 | 단점 | |
CBV | 객체 지향 기법으로 확장, 재사용 용이 IF 함수 대신 메소드 기반이라 코드 구조가 깔끔 Generic 뷰, Mixin 클래스 뷰 등을 사용 가능 |
Generic 뷰, Mixin 클래스 뷰를 사용하기 위한 학습 필요 |
FBV | 데코레이터 사용 명로 가독성 좋음 |
확장, 재사용이 어렵다. |
2. CBV (클래스 기반 View) 코드
# views.py
from django.http import HttpResponse
from django.views import View
class cbv_view(View):
def get(self ,request):
return HttpResponse('CBV View - GET 입니다')
def post(self, request):
return HttpResponse('CBV View - POST 입니다')
3. FBV (함수 기반 View)
# views.py
from django.http import HttpResponse
def fbv_view(request):
if request.method =='GET':
return HttpResponse('FBV View - GET 입니다')
elif request.method =='POST':
return HttpResponse('FBV View - POST 입니다')
'Python > Django' 카테고리의 다른 글
[Django] 트랜잭션 이란? (Transaction.atomic) (0) | 2022.06.21 |
---|---|
[Django] User 모델 작성 방법 비교 (AbstractUser vs AbstractBaseUser) (0) | 2022.06.19 |
[Django] ORM Queryset API - 메소드 정리 (0) | 2022.06.15 |
[Django] 무식한 라이브러리 분해 4 (settings.py) (0) | 2022.06.15 |
[Django] CSRF Token + Form 방식 (0) | 2022.06.12 |