[view] FBV와 CBV

이상해씨·2023년 12월 20일
0

장고 (Django)

목록 보기
29/38

View를 작성하는 방법

  1. FBV(Function based view)
  2. CBV(Class based view)

1. FBV (Function-Based Views)

  • 가장 기본 형태
  • 간단한 HTTP 요청 처리, 응답 반환
  • 함수로 작성되어 간단하고 직관적, 빠르게 개발할 수 있음
  • 간단한 개발에 적함
from django.http import HttpResponse

def my_view(request):
    # request를 처리하는 로직
    return HttpResponse("Hello, this is a function-based view!")

2. CBV (Class-Based Views)

  • 장고에서 제공하는 상속, 믹스인등의 기능을 활용하여 코드를 구조화. HTTP 메서드(GET, POST 등)에 따라 메서드(get(), post() 등)를 오버라이드하여 뷰 로직 작성

    💡 믹스인(Mixin)
    : CBV에서 코드 재사용을 위한 방법 중 하나. 믹스인은 기능을 담은 작은 클래스로 다른 클래스에서 상속 받아 사용됨. 비슷한 기능을 가진 클래스들 사이에서 코드를 공유하고 중복을 방지하기 위해 활용. 믹스인은 단독으로 동작할 수 없으며, 다른 클래스의 특정 기능을 제공하기 위해 사용됨. Django에서는 LoginRequiredMixin, PermissionRequiredMixin과 같은 믹스인 클래스를 제공

  • Django에서 기본적으로 제공하는 뷰 클래스를 상속하여 사용
  • HTTP 메서드에 따라 다양한 메서드 get(). post() 등을 정의하여 요청을 처리
  • 구조화, 재사용성, view 기능 확장 및 오버라이드가 쉬운것이 장점

    💡 오버라이드(override)
    : OOP에서 부모 클래스로 부터 상속된 클래스나 자식 클래스에서 재정의하는 것을 의미. 자식 클래스에서 동일한 이름의 메서드나 속성을 가진 부모 클래스의 메서드나 속성을 덮어쓰는 것

  • 클래스로 뷰를 활용하여 CRUD 작업을 간단하게 할 수 있음
  • 자동화가 되나, 자유도가 떨어지는 단점
from django.http import HttpResponse
from django.views import View

class MyView(View):
    def get(self, request):
        # GET 요청 처리 로직
        return HttpResponse("Hello, this is a class-based view for GET request")

    def post(self, request):
        # POST 요청 처리 로직
        return HttpResponse("Hello, this is a class-based view for POST request")
profile
공부에는 끝이 없다

0개의 댓글