Python/Django

[Django] cbv(class based view) or fbv( function based view)

view부분 제작중 model  만드는 방법과 달리

장고에서 뷰를 표현하는 방법이 크게 두가지인걸 알게됬다

cbv(class based view) 와 fbv(function based view) 인데

cbv 는 클래스 상속을 통해 장고자체에서 잘만들어진 기능들을 가져와 쓰는 방법이고

fbv 는 그냥  파이썬코드로 작성하는 방법이었다.

 

당연히 코드 자체의 양은 cbv가 압도적으로 짧다  fbv가 15~20줄쓸거를 cbv는  클래스를 가져와서  5줄만

에 해결해버린다.

 

장고 함수들 속성을 모아놓은 사이트

https://ccbv.co.uk/projects/Django/3.0/django.views.generic.list/ListView/

 

내가느낀거는 필요할때 쓰면 된다는것이다

단순히 보여주기만 하고  반복하는것은  cbv를 쓰면 되겠지만

매우 조건이 많은 부분은 fbv 를 쓰면 되지 않을까?

그리고 코드가 짧다는게 간단하다는건 아니다 왜냐면 다른 사람이 봤을때 이게 어떤 코드인지 모르기 때문이다

코드가 많을수록 무슨일이 일어나는지 이해하기가 더쉽다. 여러가지가 적혀있기에..

 

 

찾아보니 스택오버플로우에서도 이거에 관한 토론글이있었다.

여튼 정답은 없으니 그냥 해야징