[Django] 클래스형 뷰

Bik_Kyun·2022년 3월 16일
0
post-thumbnail

URLconf

#Urls.py
from django.urls import path
from owners.views import OwnersView, DogsView
urlpatterns = [
    path('/owners', OwnersView.as_view()),
    path('/dogs', DogsView.as_view())
]

클래스형 뷰

클래스형 뷰는 클래스로 진입하기 위한 진입 메소드. (as_view() 메소드)

as_view() 메소드 요청 처리 순서

1) as_view() 메소드에서 클래스의 인스턴스를 생성한다.
2) 생성된 인스턴스의 dispatch() 메소드를 호출한다.
3) disptch() 메소드는 요청을 검사해서 HTTP의 메소드(GET,POST...)를 알아낸다.
4) 인스턴스 내에 해당 이름을 갖는 메소드로 요청을 중계한다.
5) 해당 메소드가 정의되어 있지 않으면, HttpResponseNotAllowed 예외를 발생시킨다.

클래스형 뷰의 장점 (함수형 뷰와 비교)

  • GET, POST 등의 HTTP 메소드에 따른 처리를 메소드명으로 구분할 수 있어 더 간략한 구조로 구현할 수 있다.(여기선 if문을 안써도 된다는 것)
  • 객체 지향 기술(다중 상속...)이 가능하여 코드의 재사용성이나 개발 생산성을 높여준다.
profile
비진

0개의 댓글