초보 개발자를위한 Django vs web2py [닫기]


83

11 개월 경험이있는 개발자에게 더 적합한 두 프레임 워크는 무엇입니까? 나는 내 서버 측 코딩을 위해 파이썬을 배우기로 결정했고 이들 중 어느 것이 내 기술 수준의 누군가에게 더 적합한 지 알고 싶었습니다. 나는 방금 web2py를 가지고 놀면서 며칠을 보냈고 정말 좋아했고 Django가 내가 놓치고있는 더 많은 것을 제공하는지 궁금합니다.

추신. 업데이트 : 멋진 의견을 보내 주셔서 감사합니다. django 책 3 권을 구입하고 django와 web2py에 대한 몇 가지 작은 프로젝트 / 튜토리얼을 살펴본 후 web2py에 정착했습니다. 이것은 새로운 사람에게 웹 개발을 정말 재미있게 만드는 멋진 프레임 워크입니다. 이 프레임 워크가 앞으로 주류가 될 것이기 때문에 모든 초보자에게이 프레임 워크를 배우는 것이 좋습니다. Django도 훌륭한 프레임 워크이지만 제한된 경험으로는 web2py가 더 좋습니다.


도움이된다면 그것으로 봐 mengu.net/post/django-vs-web2py
칼 디팍에게

1
"Web2py를 사용하면 애플리케이션 개발에 집중할 수 있지만 Django는 그렇지 않습니다. 모든 작업을 수행하기를 바랍니다." 예, 매우 편견없는 비교처럼 들립니다
user240515

귀하의 진술을 뒷받침하는 선택 인용문을 선택하지 마십시오. 기사는 그렇게 나쁘지 않습니다.
애슐리

: 내가 web2py에 대한 완전한 초보자를 대상으로 튜토리얼을 찾을 생각 킬러 웹 개발
콜린 키넌

1
'장고를 사용해 본 적이 있다면 ... 모든 것은 상속에 기반합니다. 그들이 [CBVs]를 소개했을 때 누군가가 상속 트리를 탐색하기 위해이 사이트를 만들어야 할 정도로 복잡해 졌습니다 . ccbv.co.uk ' -news.ycombinator.com/item?id=7994281 대'또 다른 단점 은 그 때문입니다. 모델과 컨트롤러는 클래스 기반이 아니므로 효율적인 코드 재사용이 더욱 어려워집니다. 특히 부모 컨트롤러에서 상속 할 수 없기 때문에 공통 컨트롤러 기능이 모든 컨트롤러 파일에서 반복적으로 참조되어야합니다. ' - en.wikipedia.org/wiki/Web2py
mistermarko

답변:


107

(면책 조항 : 저는 web2py의 프로젝트 리더입니다)

Django는 web2py보다 약 5 년 더 길어 졌으므로 더 많은 사용자와 더 많은 애플리케이션을 선보일 수 있습니다. Django는 web2py의 "admin"과 같지 않지만 web2py의 "appadmin"과 같은 "admin"을 가지고 있습니다. Django의 "admin"은 web2py의 "appadmin"보다 더 좋고 사용자 정의가 가능합니다. Django에는 web2py의 "admin"에 해당하는 기능이 없습니다. (이름 혼란에 대해 죄송합니다).

web2py는 더 작고 기본적으로 더 많은 기능을 제공합니다 (더 많은 지원 데이터베이스, 웹 기반 IDE, 티켓팅 시스템, 패치없이 GAE에서 실행, 다중 로그인 방법, 역할 기반 액세스 제어, 웹 기반 번역 인터페이스, 다중 데이터베이스 연결 지원, 분산 트랜잭션 등).

저에게 web2py의 가장 중요한 기능은 자동 마이그레이션입니다. Django는 기본적으로 제공하지 않습니다.

web2py의 경우 장기적인 이전 버전과의 호환성은 보안과 함께 주요 목표입니다. Django는 보안 측면에서 web2py와 비슷하지만 (web2py는 이전에 템플릿에서 CSRF 방지 및 기본 이스케이프 기능이 있다는 점을 제외하고) 1.0이 출시되었을 때 이전 버전과의 호환성을 깨뜨 렸습니다. web2py는 2007 년 10 월 이후로 한 번도하지 않았습니다.

나에게 web2py 구문은 더 자연 스럽습니다.

 db(db.tablename.fieldname <= value).select() # web2py
 Tablename.objects.filter(fieldname__lt=value) # Django

Django에없는 web2py의 기능을 알지 못합니다. 나는 그 질문이 있다면 web2py에 추가하고 싶기 때문에 여러 번 물어 보았지만 아직 만족스러운 답변을받지 못했습니다.

물론 우리 둘 다 다른 일이 있습니다. Django는 "명시적인 것이 암시적인 것보다 낫다"를 따릅니다. web2py는 "모든 것이 기본 동작을 가져야합니다"를 따르지 않고 대신 따릅니다. 이것이 web2py 코드와 구성을 더 간결하게 만든다고 생각합니다.

어쨌든, 당신이 무엇을 선택하든, 둘 다 좋은 견고한 웹 프레임 워크이며 차이점보다 유사점이 적습니다. Django의 개발자는 매우 똑똑한 사람들입니다.

web2py 커뮤니티는 매우 친절합니다. 실험으로 web2py google 그룹과 Django 그룹에 질문 해보세요.


1
고마워요, 이것은 좋은 것입니다. 나는 그것을 테스트하기 위해 Django 튜토리얼을 진행하고 있습니다. web2py 구문은 확실히 더 자연 스럽습니다. 나중에 더 명확한 그림을 얻을 수 있기를 바라지 만 지금까지 두 프레임 워크 모두 정말 좋아 보입니다.
RubyGladiator 2010

11
+1 (web2py를 사용하면 뷰에서 직접 파이썬을 작성할 수 있다는 점에 감사드립니다)
doug

1
제공 한 web2py 예제 ( " db(db.tablename.fieldname <= value).select()") 에 대한 질문이 있습니다. Python처럼 보이지 않기 때문입니다 (괄호 안의 부분은 매개 변수 중 하나에 값을 할당하지 않고 True/ 전달 만합니다 False). web2py의 표준입니까 아니면 제공 한 코드가 실제 web2py 코드의 단순화 된 버전입니까? 괄호 안의 부분은 따옴표로 묶어야합니까? 설명 해주십시오.
Tadeck

db (...). select ()에서 ...는 True / False 값이 아닙니다. db.tablename.fieldname <= value는 각 레코드에서 true 또는 false로 평가되는 표현식입니다. 이것은 실제 web2py 코드입니다. 따옴표가 없습니다.
Massimo

4
web2py DAL은 단순히 쿼리를 작성하는 방법을 제공합니다. 쿼리는 SQL로 변환되어 응답을 반환하는 데이터베이스로 전송됩니다. web2py는 데이터베이스에있는 레코드 수에 영향을받지 않으며 상관하지 않습니다. 즉, "db (db.tablename.fieldname <= value) .select ()"라고 쓰면 web2py는 모든 레코드를 검색하지 않고 각 레코드에 대한 조건을 계산하지 않습니다. "SELECT * FROM TABLENAME WHERE FIELDNAME = '1'"에 대해 데이터베이스를 쿼리하려는 경우입니다.
Massimo

23

Django와 web2py는 모두 유사한 기능과 기능을 가진 뛰어난 '풀 스택'웹 프레임 워크입니다. 두 프레임 워크를 사용하는 초보자만큼 '누락'하지 않을 것입니다.

학습으로 무엇을하고 싶은지 더 많이 알지 못하면 질문에 답하기가 어렵습니다. 어떤 사람들은 언어가 아닌 프레임 워크를 배울 위험이 있다고 말할 것이므로 먼저 Python 언어와 가벼운 프레임 워크 (예 : Flask 또는 wekzeug )에 대해 더 깊이 이해하는 것이 가장 좋습니다 .

그렇지만 web2py는 학습 도구특별히 설계 되었기 때문에 Django보다 초기 학습 곡선이 낮습니다 . 그래서 나는 당신이 좋은 선택을했다고 말하고 싶습니다. 학습은 낭비되지 않으며 앞으로 다른 것이 필요하다고 결정하면 web2py를 사용하여 배웠을 좋은 기술이 낭비되지 않습니다.

Django에 대한 더 많은 학습 리소스가 있지만 더 오래 사용되었고 더 많은 사용자가 있기 때문에 web2py를 배우는 것도 훌륭한 책으로 인해 빠릅니다.사용자 그룹의 질문에 대한 거의 즉각적인 응답 .

일자리를 찾고 있다면 더 많은 Django 일자리가 있기 때문에 그 요인이 될 수 있습니다. 그래도 web2py 커뮤니티는 최근에 귀하의 기술과 가용성을 향후에 홍보 할 수있는 expert4solutions를 .

즐기세요!


Knitatoms에게 감사합니다. 저는 실제로 루비를 배웠고 지금까지 매우 유사한 것처럼 보이는 파이썬을 건너서 배우고 있습니다. 내가 프레임 워크로 무엇을하고 싶은지에 관해서는 이것은 순전히 가까운 미래에 웹 스타트 업을 구축하는 것입니다. 나는 또한 그것을 가지고 놀면서 jquerymobile을 사용하여 무언가를 만들고 싶습니다.
RubyGladiator 2010

2
흥미로운 소식-저도 비슷한 위치에 있고 제 자신을 위해 일할 것이기 때문에 제 자신의 프레임 워크를 선택하기 때문에 web2py를 사용했고 지금까지 행복합니다.
keybits 2010

10

저는 Web2py와 DJango를 모두 사용하는 완전히 멍청한 사람이지만 간단한 데이터베이스를위한 프런트 엔드를 가지고 놀고 배우고 생성 할 수있는 파이썬적인 웹 프레임 워크를 원했습니다. 나는 web2py를 보았지만 완전한 초보자를 대상으로 한 괜찮은 튜토리얼을 찾을 수 없었습니다 .web2py를 설치했을 때 매우 쉬웠습니다. 다음에 무엇을 해야할지 몰랐습니다. 저를 안내하는 튜토리얼이 없었습니다. 간단한 웹 앱을 빌드하는 방법 (Hello World뿐만 아니라) 반면에 DJango는 첫 번째 DJango 앱을 작성했습니다 . Part 1 . 이것은 초보자에게 간단한 웹 앱을 작성하여 프레임 워크를 설정하고 사용하는 방법에 대한 소개를 제공하면서 정말 좋았습니다. Web2Py가 이것을 제공 할 때까지 내 투표는 DJango로 이동합니다.


나는 파이썬이나 데이터베이스를 전혀 모르는 것으로부터 Web2py를 배웠습니다 : youtube.com/… 얼마 지나지 않아 Web2py를 사용하여 대규모 기업과 사용자 기반을위한 두 개의 프로덕션 웹 서비스를 구축했습니다. Google 그룹 커뮤니티에 감사드립니다!
Preactive

6

많은 말로 : (내가 이해했듯이)

Web2py는 확실히 더 쉽고 코드를 더 간단하고 깔끔하게 만듭니다. 하지만 Django는 무슨 일이 일어나고 있는지 더 잘 이해하고 디자인 / 프로세스를 수정할 수있는 더 많은 권한을 제공합니다.

Web2py는 "단순한 것이 복잡한 것보다 낫다"에 더 중점을두고 있지만 Django는 "명시적인 것이 암시적인 것보다 낫다"에 더 중점을 둡니다. The Zen of Python의 두 부분이므로 어떤 프레임 워크가 더 Pythonic인지 말하기는 매우 어렵습니다.


9
실제로 나는 때때로 Web2Py가 다소 반대이고 복잡하다는 것을 발견합니다. 이것은 " 복잡한 것이 복잡하기보다는 낫다 "에 반대하는 입니다. 역 호환성, 중복 된 이름, 다양한 파일의 암시 적 실행, 전역 변수가 어디에나 매달려 있습니다. 이러한 모든 문제는 Python의 철학에 반하는 Python 프레임 워크를 초래했습니다.
Tadeck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.