django에서는 view를 처리할때 두가지 방법으로 처리할 수 있다.
FBV(함수형 뷰), CBV(클래스형 뷰)로 처리할 수 있는데, 이번 포스팅은 FBV에 대해서만 다뤄볼 예정이다.
FBV(함수형 뷰)
FBV는 Function Base View를 뜻하고 있으며, 함수를 사용하고 있는 뷰이다.
사용 방법에 대해서는 url부터 알아 볼 수 있다.
urls.py
urlpatterns = [
path('', views.index, name='index'),
]
view를 import해서 함수를 선언하는 형식으로 쓰여진다.
views.py
from rest_framework.response import Response
from rest_framework.decorators import api_view
@api_view(['POST', 'GET'])
def index(request):
if request.method == 'POST':
return Response()
elif request.method == 'GET':
return Response()
FBV를 사용하기 위해서는 @api_view()
를 데코레이터로 사용해야한다.
@api_view()가 뭐냐? 일단 함수형 뷰를 기반으로 사용할때 사용하는 장식자이며 안에 리스트 타입
으로 요청 메서드를 명시
해야한다.
그렇게 되면 해당 뷰로 요청이 들어왔을때 request.method로 구분하여 원하는 method type으로 로직이 실행된다.
함수 안에서 각 HTTP METHOD는 request.method에서 받아온 내용으로 쓰이는데 위의 조건 처럼 각각 분리 해서 사용할 수 있다.
단점이라고 하면 다른 부분도 있겠지만 내 생각엔 코드를 확장하며 사용하기 어렵고 확장하더라도 잘 정리하지 않으면 가독성에 안좋을 것 같다.
'Django' 카테고리의 다른 글
django drf-yasg API 문서 커스텀하기 (@swagger_auto_schema) (FBV) (0) | 2021.08.03 |
---|---|
django api_view 사용할때 permission custom하기 (0) | 2021.08.03 |
django API 문서 설정 (drf-yasg) (0) | 2021.08.03 |
Django seed로 테스트 데이터 자동 생성 (0) | 2021.06.30 |
Django management command 사용하기 (0) | 2021.06.30 |