django-tastypie와 djangorestframework의 차이점은 무엇입니까? [닫은]


156

Django 앱에 대한 API를 노출하기 위해 왜 다른 하나를 사용합니까?

http://pypi.python.org/pypi/djangorestframework/

http://pypi.python.org/pypi/django-tastypie

답변:


205

django-rest-framework의 저자로서 저는 명백한 편견을 가지고 있습니다.

테이 스티 파이

  • Torsten이 지적했듯이, 멋진 django-haystack 과 동일한 친구들이 작성한 내용으로 크게 잘못되지는 않을 것 입니다. 메일 링리스트에서 본 Daniel Lindsey 등은 매우 유용하며 Tastypie는 안정적이고 포괄적이며 잘 문서화되어 있습니다.
  • 합리적인 기본 동작 집합을 제공하고 해당 스타일로 API를 매우 쉽게 구축 할 수 있습니다.

Django REST 프레임 워크

  • HTML 탐색 가능 자체 설명 API를 제공합니다. (예 : 튜토리얼 API 참조 .) 브라우저에서 직접 API를 탐색하고 상호 작용할 수 있다는 것은 큰 유용성입니다.
  • Django의 클래스 기반 뷰 등을 기반으로 구축 된 Django 관용구에 가깝게 유지하려고합니다.
  • 기본 아키텍처가 매우 훌륭하게 구축되고 분리되어 있다고 생각하고 싶습니다.

어쨌든 둘 다 좋습니다. 아마도 Tastypie는 합리적인 기본값 세트를 제공하는 것으로, REST 프레임 워크는 매우 훌륭하게 분리되고 유연하다고 특성화 할 것입니다. API에 많은 시간을 투자 할 계획이라면 각각의 문서 및 코드베이스를 살펴보고 자신에게 더 적합한 느낌을 얻으려고 노력하는 것이 좋습니다.

분명히 'Why TastyPie?'도 있습니다. 섹션의 README 및 'REST 프레임 워크 3' 입니다.

2012 년 5 월부터 Django 용 API 프레임 워크 선택에 대한 Daniel Greenfeld의 블로그 게시물을 참조하십시오 (큰 REST 프레임 워크 2.0 릴리스 이전에 아직 몇 달이 남았다는 점에 주목할 가치가 있습니다).

또한 Reddit에서 2013 년 12 월2013 년 7 월에 동일한 질문을하는 사람들과 함께 스레드 몇 개를 작성했습니다 .


7
Btw, 우리는 주요 프로젝트에 Django-rest-framework를 사용하고 있습니다. 나는 1 주일 일찍 tastypie를 시험 운전했고 DRF를 사용하는 것에 대해 후회하지 않습니다. 문서는 불행히도 코드와 프레임 워크 자체와 동등하지는 않지만 그 외에는 순수한 행복입니다.
B Robster 2012 년

좋은 물건, 고마워 Ben. 그리고 네, 당신의 요점은 다시. 문서는 확실히 공정합니다. 그것을 해결할 계획입니다!
Tom Christie

"django-rest-framework에 대한 DjangoCon의 번개 이야기"비디오 링크가 죽었습니다!
Mutant

1
@Mutant-감사합니다. djangocon.eu 2011 사이트는 이제 죽었지 만 blip.tv의 비디오에 직접 연결했습니다.
Tom Christie

@TomChristie blip.tv에 대한 링크가 이제 죽었습니다! 가 올바른 비디오?
kevins 2014 년

19

둘 다 좋은 선택입니다.

필터의 경우 tastypie는 기본적으로 더 강력합니다. 모델을 노출하는 뷰가있는 경우 Django 스타일 부등식 필터를 수행 할 수 있습니다.

http://www.example.com/api/person?age__gt=30

또는 OR 쿼리 :

http://www.example.com/api/mymodel?language__in=en&language__in=fr

이는 djangorestframework로 가능하지만 각 모델에 대한 사용자 정의 필터를 작성해야합니다.

역 추적의 경우 django-rest-framework에 더 깊은 인상을 받았습니다. Tastypie는 이메일을하려고 할 settings.ADMINS때 예외에 DEBUG = False. 경우 DEBUG = True, 기본 오류 메시지가 JSON 직렬화 읽기 어렵습니다.


8
Django REST Framework에서이를위한 사용자 지정 필터를 작성할 필요가 없습니다. DjangoFilterBackend여기에 REST 프레임 워크에 의해 문서화 된대로 제공된 것을 사용하기 만하면
monokrome

13

오래된 답변 편집 , tastypie는 더 이상 유지되지 않습니다. REST를 수행 할 프레임 워크를 선택해야하는 경우 Django REST 프레임 워크를 사용하십시오.

둘 사이의 실제 차이점에 대한 개요를 보려면 해당 문서를 읽어야합니다. 그들은 다소 완전하고 상당히 성숙합니다.

나는 개인적으로 tastypie 경향이 있습니다. 설정하는 것이 더 쉬운 것 같습니다. 그것은 굉장한 django-haystack 을 만든 동일한 사람들로부터 이루어졌으며 django-packages 에 따르면 Django REST 프레임 워크보다 더 많이 사용됩니다.


2
이 문서는 "둘 사이의 실제 차이점에 대한 개요"가 전혀 아닙니다.
monokrome 2014-08-11

I -1 이것은 상당히 구식이고 지금까지 사실적인 실수가 있기 때문입니다. DRF는 이제 TastyPie보다 훨씬 더 많이 사용됩니다. 즉, 저자는 django-packages에 대한 링크를 포함했으며 고품질 답변입니다.
texnic

1
Github의 역사와 2018 년에 해결 된 이슈에 따르면 TastyPie는 여전히 유지되고있는 것 같습니다.
Sushil

Tastypie는 django 1.11에서 지원되며 이는 향후 프로젝트 고려 사항에 위안이됩니다. django-tastypie.readthedocs.io/en/latest/...
elsadek

5

이것이 처음 요청 된 이후로 DRF가 강점에서 강점으로 바뀌 었다는 점은 주목할 가치가 있습니다.

github에서 두 가지 중 더 활동적입니다 (커밋, 스타, 포크 및 기여자 측면에서 모두).

DRF에는 OAuth 2 지원 및 탐색 가능한 API가 있습니다.

솔직히 마지막 기능은 킬러입니다. 내 모든 프론트 엔드 개발자가 어떻게 작동하는지 확신 할 수 없을 때 브라우저 가능한 API에서 'Go play; 알아요 '는 환상적입니다.

그 이유는 그들이 자신의 용어로 그것을 이해하고 API가 실제로 '문서'가 말하는 것을 절대적으로 수행한다는 것을 알고 있기 때문입니다. API와 통합하는 세계에서 그 사실만으로도 DRF가 이길 수있는 프레임 워크가됩니다.


궁금 django-tastypie-swagger이 격차를?
Victor Sergienko

2

글쎄, Tastypie와 DRF는 모두 훌륭한 선택입니다. 당신은 단순히 수없는 둘 중 하나 잘못 이동합니다. (저는 Piston에 대해 일한 적이 없습니다. 그리고 그 종류는 이제 더 이상 유행하지 않으므로 그것에 대해 언급 할 수 없습니다. Taken for Granted.) 겸손하게 생각합니다. 선택은 귀하 (및 귀하의 기술 팀)의 기술, 지식 및 능력에 따라 이루어져야합니다. 테이 스티 파이와 DRF가 제공하는 것보다는 코스 밖에서 Quora, Facebook 또는 Google과 같은 정말 큰 것을 구축하지 않는 한.

개인적으로 저는 장고를 제대로 몰랐을 때 처음 테이 스티 파이 작업을 시작했습니다. 그 당시에는 REST와 HTTP 만 잘 알고 있었지만 django에 대한 지식이 거의 없거나 거의 없었습니다. 내 유일한 의도는 모바일 장치에서 사용되는 RESTful API를 즉시 구축하는 것이기 때문입니다. 그러니 만약 당신이 '그때 나는 장고- 뉴비 라고 불렀다'와 같다면 , 테이 스티 파이를 더 많이 생각하지 마세요.

하지만 장고로 다년간 일한 경험 이 있다면 , 고급 개념 (클래스 기반 뷰, 양식, 모델 유효성 검사기, 쿼리 세트, 관리자 및 모델 인스턴스와 이들이 서로 상호 작용하는 방식과 같은)을 사용하는 것이 매우 편안하다는 것을 안다. * DRF로 이동합니다. ** DFR은 django의 클래스 기반 뷰를 기반으로합니다. DRF는 관용적 인 장고입니다. 당신이 모델 양식, 유효성 검사기 등을 작성하는 것과 같습니다. DRF도 중요합니다.) DRF에는 django와 같은 많은 내장 매직 메서드가 있습니다. 장고 마법의 방법과 철학을 좋아한다면 ** DRF **는 당신을위한 것입니다.

이제 정확한 질문에 답하기 위해 :

Tastypie :

장점 :

  1. 시작하기 쉽고 기본 기능 OOB (즉시 제공)를 제공합니다.
  2. 대부분의 경우 CBV, Forms 등과 같은 고급 Django 개념을 다루지 않을 것입니다.
  3. 더 읽기 쉬운 코드와 덜 마법!
  4. 모델이 ORM이 아닌 경우 선택하십시오.

단점 :

  1. 관용적 인 장고를 엄격히 따르지 않습니다 (파이썬과 장고의 철학은 상당히 다릅니다)
  2. 규모가 커지면 API를 사용자 정의하기가 조금 어려울 수 있습니다.
  3. O-Auth 없음

DRF :

  1. 관용적 인 장고를 따르십시오. (장고를 완전히 알고 있고 CBV, Forms 등을 매우 편안하게 알고 있다면 의심의 여지없이 사용하십시오)
  2. ModelViewSets를 사용하여 즉시 사용 가능한 REST 기능을 제공합니다. 동시에 CustomSerializer, APIView, GenericViews 등을 사용하여 사용자 지정에 대한 더 많은 제어를 제공합니다.
  3. 더 나은 인증. 사용자 지정 권한 클래스를 더 쉽게 작성할 수 있습니다. 타사 라이브러리 및 OAuth와 함께 작동하도록 매우 잘 작동하고 중요한 것은 매우 쉽습니다. DJANGO-REST-AUTH는 Auth / SocialAuthentication / Registration을위한 LIBRARY를 언급 할 가치가 있습니다. ( https://github.com/Tivix/django-rest-auth )

단점 :

  1. 장고를 잘 모른다면 이러지 마세요.
  2. 마법! 마술을 이해하기가 매우 어렵습니다. 그것은 본질적으로 상당히 복잡한 django의 CBV 위에 작성 되었기 때문입니다. ( https://code.djangoproject.com/ticket/6735 )
  3. 가파른 학습 곡선이 있습니다.

개인적으로 다음 프로젝트에서 무엇을 사용합니까?

  • 이제 저는 더 이상 MAGIC 및 Out-of-box 기능의 팬이 아닙니다. 왜냐하면 그들은 모두 큰 비용을 내야하기 때문입니다. * 프로젝트 시간과 예산에 대한 모든 선택권과 제어권이 있다고 가정하면 RESTLess ( https://github.com/toastdriven/restless ) (TastyPie 및 django-haystack ( http : //haystacksearch.org/ )). 그리고 같은 문제에 대해 Flask 와 같은 경량 웹 프레임 워크를 선택하십시오 .

  • 그런데 왜? -더 읽기 쉽고 간단하며 관리하기 쉬운 관용적 파이썬 (일명 파이썬) 코드. 더 많은 코드이지만 궁극적으로 큰 유연성과 사용자 정의를 제공합니다.

    • 명시적인 것이 암시적인 것보다 낫습니다.
    • 단순한 것이 복잡한 것보다 낫습니다.
    • 복잡한 것이 복잡한 것보다 낫습니다.
    • 플랫이 중첩보다 낫습니다.
    • 희소가 밀도보다 낫습니다.
    • 가독성이 중요합니다.
    • 특별한 경우는 규칙을 어길만큼 특별하지 않습니다.

Django와 TastyPie 및 DRF 중 하나 밖에 선택의 여지가 없다면 어떨까요?

  • 이제 Django를 합리적으로 잘 알고 있으므로 ** DRF를 사용하겠습니다. **
  • 왜? -관용적 인 djagno! (나는 그것을 좋아하지 않는다). 더 나은 OAuth 및 타사 통합 (django-rest-auth가 가장 좋습니다).

그렇다면 처음에 DRF / TastyPie를 선택한 이유는 무엇입니까?

  • 대부분 저는 예산과 시간이 빡빡한 스타트 업 및 소규모 회사와 함께 일했습니다. 빠르고 유용한 것을 제공해야합니다. Django는이 목적을 매우 잘 수행합니다. (나는 django가 확장 가능하지 않다고 말하는 것이 아닙니다. Quora, Disquss, Youtube 등과 같은 웹 사이트가 실행되고 있습니다. 그러나 모든 작업에는 시간과 평균 이상의 기술이 필요합니다)

더 나은 결정을 내리는 데 도움이되기를 바랍니다.

기타 참고 자료-1 . The State of Tastypie ( http://toastdriven.com/blog/2014/may/23/state-tastypie/ ) 2. django-tastypie와 djangorestframework의 차이점은 무엇입니까? ( django-tastypie와 djangorestframework의 차이점은 무엇입니까? )


1

두 가지를 모두 사용한 결과, Django Rest Framwork에 대해 제가 좋아했던 (선호하는) 한 가지는 Django와 매우 일치한다는 것입니다.

모델 시리얼 라이저를 작성하는 것은 모델 양식을 작성하는 것과 매우 유사합니다. 내장 된 Generic View는 Django의 HTML 용 일반 뷰와 매우 유사합니다.


1

Django-tastypie는 더 이상 원래 제작자가 관리하지 않으며 자신 만의 새로운 경량 프레임 워크를 만들었습니다.

현재 API를 공개하려면 django와 함께 django-rest-framework를 사용해야합니다.

대기업에서 사용하고 있습니다. django-rest-framework는 django 팀의 핵심 멤버이며 django-rest-framework를 유지하기위한 자금을받습니다.

django-rest-framework에는 또한 계속해서 늘어나는 3rd arty 패키지가 많이 포함되어있어 번거 로움을 줄이고 API를 더 쉽게 빌드 할 수 있습니다.

drf의 일부도 django에서 병합됩니다.

drf는 django-tastypie보다 더 나은 패턴과 도구를 제공합니다.

요컨대, 그것은 잘 설계되고, 잘 유지되고, 자금이 조달되고, 대규모 조직에서 신뢰하는 거대한 타사 앱을 제공하고, tastypie보다 더 쉽고, 더 적은 상용구 등을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.