2013-07-22 3 views
8

새로운 Django 프로젝트에서 클래스 기반 뷰 (CBV) 또는 함수 기반 뷰 (FBV)를 사용할지 궁금합니다. Django's documentation에 따르면새로운 Django 프로젝트에서 클래스 기반 또는 함수 기반 뷰를 사용해야합니까?

:

클래스 기반의 뷰는 파이썬 대신 기능의 객체로 뷰를 구현하는 다른 방법을 제공합니다. 기능 기반의 뷰

선을 파이썬 모순되는 것처럼 보인다

과 비교했을 때 그들은 어떤 차이점과 장점을 기능 기반의 뷰를 대체하지만,하지 않아도

를 '그것을 할 수있는 하나의 방법이있다' , 그것은 더 좋은 방법인가? (것과 같은 클래스 기반 1.5 이후입니다)

  • 모두에서 일반 뷰를 사용하지 않는 것을 의미 FBV

    를 사용하여 항상

    1. :

      지금까지, 난 단지 세 가지 가능성을 참조 항상 CBV 사용 :

      요청 처리 명령을 결정할 때 특정 문제가 있습니다.

      http://lukeplant.me.uk/blog/posts/djangos-cbvs-were-a-mistake/

      내가 또한 전체 클래스 계층 구조를 구축하는 것은 성능 좋은 아니라고 생각하십시오. 이 경우 FBV가 아직 사용되지 않는 이유는 무엇입니까?

    당신이 어떤 다른 방법을 보는가, 또는 사람이 어디에 있는지 않는 잔인한 상용구 코드의 많은 결과

    https://gist.github.com/spookylukey/2596285

    에 따라, FBV에 일반 CBV 넣기 전망은 가고있다?

  • +0

    "보기가 진행되는 위치를 알 수있는 사람이 누구입니까?"-이 질문은 개발 용 메일 링리스트/IRC 용입니다. –

    +1

    프로젝트에 가장 적합한 것을 사용해야합니다. 나는 함수 기반 * generic 뷰가 쓸모 없게 될 것이라고 말할 것이다. 함수 기반 뷰는 클래스 기반 뷰와는 다른 문제를 해결합니다. –

    +0

    @GeorgeStocker : '당신의 프로젝트에 가장 의미가있는 것을 사용하는 것은 모순이 아닙니까? [...] 나는 함수 기반의 일반 wiev가 쓸모 없게 될 것이라고 말할 것입니다.' 그렇다면 FBV가 쓸모 없게 될 것입니다. 대부분의 경우, fbv와 cbv 모두 동일한 문제를 다루고 있습니다. 하나의 프로젝트에서 두 가지를 모두 사용하고 평등하게 제공하는 것이 바람직하지 않습니까? – ProfHase85

    답변

    3

    이것은 의견의 문제입니다. 개인적으로 저는 Luke Plant와 동의하지 않으며 Class Based Views과 사랑에 빠졌습니다. Django 커뮤니티의 열렬한 저항에 대한 많은 저항이 그들이 어떻게 작동하는지 쉽게 볼 수 없다는 사실에서 비롯된 것이라고 생각합니다. (구현은 많은 Mixins를 사용하고 따르기가 어려울 수 있습니다.) 문서가 부족하고, 그리고 나는 많은 오해가 있었다고 생각한다. 일반 CBV 's와 보통 CBV 's.

    지금 문서는 훨씬 더지고와 사용할 수있는 도구가 그들에게 좋은 이해를 돕기 위해 (오랫동안 당신이 첫 번째 결과에 대한 일반적인 전망했다 "장고 클래스 기반의 뷰를"구글에서 그 어느 때) (참조 ccbv.co.uk 또는 pudb).

    사람들이 OOP를 제안하는 것과 같은 이유 때문에 학습하고 사용하는 것이 좋습니다 (코드 상 반복 횟수를 줄이고 코드 재사용 (상속, 믹스 인)) ... 즉, DRY입니다.

    다른 프로젝트가 CBV 님의 작품을 어떻게 사용하는지 체크해볼 가치가 있습니다. 가장 최근에 좋아하는 작품 중 하나가 좋은 효과를 내기 위해 django-oscar입니다.

    관련 문제