Django vs web2py dành cho nhà phát triển mới bắt đầu [đã đóng cửa]


83

Khung nào trong hai khung này phù hợp hơn với nhà phát triển có kinh nghiệm 11 tháng. Tôi đã quyết định học python để viết mã phía máy chủ của mình và muốn biết cái nào trong số này sẽ phù hợp hơn với người ở cấp độ kỹ năng của tôi. Tôi vừa dành một vài ngày để chơi với web2py và thực sự thích nó và tôi đang tự hỏi liệu Django có cung cấp thêm điều gì đó mà tôi đang bỏ lỡ không?

Tái bút. CẬP NHẬT: Cảm ơn tất cả các bạn vì những thông tin đầu vào tuyệt vời, sau khi mua ba cuốn sách django và xem qua một vài dự án / hướng dẫn nhỏ cho cả django và web2py, tôi đã ổn định trên web2py. Đây là một khuôn khổ tuyệt vời, làm cho việc phát triển web thực sự thú vị đối với một người mới. Tôi muốn khuyên tất cả người mới học framework này vì nó sẽ là xu hướng chủ đạo trong tương lai. Django cũng là một framework tuyệt vời nhưng web2py chỉ tốt hơn theo ý kiến ​​kinh nghiệm hạn chế của tôi.


Hãy xem xét nó nếu nó giúp mengu.net/post/django-vs-web2py
Shiv Deepak

1
"Web2py cho phép bạn tập trung vào việc phát triển ứng dụng của mình, Django thì không. Nó muốn bạn làm tất cả những việc của nó." Yeah, âm thanh như một so sánh rất không thiên vị
user240515

Đừng chọn một trích dẫn lựa chọn để hỗ trợ tuyên bố của bạn. Bài báo không tệ lắm.
Ashley

Tôi nghĩ rằng tôi đã tìm thấy một hướng dẫn nhằm vào người mới hoàn chỉnh cho web2py: killer Phát triển Web
Colin Keenan

1
'nếu bạn đã từng sử dụng Django ... thì toàn bộ mọi thứ đều dựa trên tính kế thừa. Khi họ giới thiệu [CBV], nó trở nên phức tạp đến nỗi ai đó phải tạo trang web này chỉ để khám phá cây thừa kế: ccbv.co.uk '- news.ycombinator.com/item?id=7994281 so với' Một điều khó hiểu khác là vì mô hình và bộ điều khiển không dựa trên lớp, việc sử dụng lại mã hiệu quả trở nên khó khăn hơn, đặc biệt khi không có khả năng kế thừa từ bộ điều khiển mẹ ... có nghĩa là chức năng bộ điều khiển chung phải được tham chiếu nhiều lần trên tất cả các tệp bộ điều khiển. ' - en.wikipedia.org/wiki/Web2py
mistermarko

Câu trả lời:


107

(tuyên bố từ chối trách nhiệm: Tôi là trưởng dự án cho web2py)

Django đã lâu hơn web2py khoảng 5 năm, do đó nó có nhiều người dùng hơn và nhiều ứng dụng hơn để giới thiệu. Django có cái mà họ gọi là "admin", không giống như "admin" của web2py mà giống "appadmin" của web2py hơn. "Quản trị viên" của Django tốt hơn và dễ tùy biến hơn "appadmin" của web2py. Django không có tương đương với "quản trị viên" của web2py. (xin lỗi vì nhầm lẫn tên).

web2py nhỏ gọn hơn và có nhiều chức năng hơn (cơ sở dữ liệu được hỗ trợ nhiều hơn, IDE dựa trên web, hệ thống bán vé, chạy trên GAE không có bản vá, nhiều phương thức đăng nhập, kiểm soát truy cập dựa trên vai trò, giao diện dịch dựa trên web, hỗ trợ nhiều kết nối cơ sở dữ liệu, giao dịch phân tán và hơn thế nữa).

Đối với tôi, chức năng quan trọng nhất của web2py là tự động di chuyển. Django không cung cấp chúng ra khỏi hộp.

Đối với web2py, khả năng tương thích ngược lâu dài là mục tiêu chính, cùng với bảo mật. Django có thể so sánh với web2py về mức độ bảo mật (ngoại trừ việc web2py có tính năng ngăn CSRF và thoát mặc định trong các mẫu trước đó) nhưng Django đã phá vỡ khả năng tương thích ngược khi phiên bản 1.0 được phát hành. web2py chưa bao giờ làm như vậy kể từ tháng 10 năm 2007.

Đối với tôi, cú pháp web2py tự nhiên hơn:

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

Tôi không biết về bất kỳ chức năng nào của web2py không có trong Django. Tôi đã hỏi câu hỏi đó nhiều lần bởi vì, nếu có, chúng tôi muốn thêm nó vào web2py, nhưng tôi vẫn chưa nhận được câu trả lời thỏa đáng.

Tất nhiên có những điều mà cả hai chúng tôi đều làm nhưng khác nhau. Django theo "rõ ràng là tốt hơn ngầm". web2py không và thay vào đó tuân theo "mọi thứ phải có một hành vi mặc định". Tôi tin rằng điều này làm cho mã và cấu hình web2py trở nên nhỏ gọn hơn.

Dù sao, bất cứ điều gì bạn chọn, chúng đều là những khung web vững chắc tốt và có ít điểm tương đồng hơn là sự khác biệt. Các nhà phát triển của Django là những người rất thông minh.

Cộng đồng web2py rất thân thiện. Như một thử nghiệm, hãy thử đặt một câu hỏi trên nhóm google web2py và trên nhóm Django.


1
Cảm ơn, đây là một số công cụ tốt. Tôi đang xem qua hướng dẫn Django để kiểm tra nó, cú pháp của web2py chắc chắn là tự nhiên hơn. Hy vọng rằng sau đó tôi sẽ có một bức tranh rõ ràng hơn, nhưng cho đến nay cả hai khung đều trông thực sự tốt.
RubyGladiator

11
+1 (tôi đánh giá cao rằng web2py cho phép bạn viết python trực tiếp trong chế độ xem của mình)
doug

1
Tôi có một câu hỏi liên quan đến ví dụ web2py mà bạn đã cung cấp (" db(db.tablename.fieldname <= value).select()"), vì nó không giống Python (phần bên trong dấu ngoặc vuông không gán giá trị cho một trong các tham số mà chỉ truyền True/ False). Nó là tiêu chuẩn cho web2py hay mã bạn cung cấp chỉ là phiên bản đơn giản hóa của mã web2py ngoài đời thực? Có lẽ phần trong ngoặc phải được đặt trong dấu ngoặc kép? Vui lòng giải thích.
Tadeck

Trong db (...). Select () the ... không phải là giá trị Đúng / Sai. db.tablename.fieldname <= value là một biểu thức sẽ đánh giá là true hoặc false trên mỗi bản ghi. Đây là mã web2py thực tế. Không có báo giá.
Massimo

4
web2py DAL chỉ đơn giản cung cấp một cách để viết các truy vấn. Các truy vấn được chuyển đổi trong SQL và được gửi đến cơ sở dữ liệu trả về phản hồi. web2py không bị ảnh hưởng bởi có bao nhiêu bản ghi trong cơ sở dữ liệu và không quan tâm. Nói cách khác, nếu tôi viết "db (db.tablename.fieldname <= value) .select ()" thì web2py sẽ KHÔNG truy xuất tất cả các bản ghi và loại bỏ điều kiện trên mỗi bản ghi. Nó nếu truy vấn cơ sở dữ liệu cho "SELECT * FROM TABLENAME WHERE FIELDNAME = '1'".
Massimo

23

Cả Django và web2py đều là những khuôn khổ web 'full stack' tuyệt vời với các tính năng và khả năng tương tự - bạn sẽ không bị 'bỏ lỡ' nhiều khi là người mới bắt đầu với cả hai khuôn khổ này.

Thật khó để trả lời câu hỏi của bạn nếu không biết thêm về những gì bạn muốn làm với việc học của mình. Một số người nói rằng có một mối nguy hiểm khi học framework chứ không phải ngôn ngữ, vì vậy tốt nhất là bạn nên hiểu sâu hơn về ngôn ngữ Python và các framework nhẹ hơn (ví dụ như Flask hoặc wekzeug ) trước.

Phải nói rằng, web2py có đường cong học tập ban đầu thấp hơn Django vì nó được thiết kế đặc biệt như một công cụ học tập . Vì vậy, tôi muốn nói rằng bạn đã có một lựa chọn tốt. Không bao giờ việc học là lãng phí và nếu bạn quyết định mình cần thứ gì khác trong tương lai, những kỹ thuật tốt bạn sẽ học được bằng cách sử dụng web2py sẽ không bị lãng phí.

Mặc dù có nhiều tài nguyên học tập hơn dành cho Django, vì nó đã tồn tại lâu hơn và có nhiều người dùng hơn, việc học web2py cũng rất nhanh vì cuốn sách xuất sắc và phản hồi gần như tức thì cho các câu hỏi của nhóm người dùng .

Nếu bạn đang tìm kiếm một công việc, có nhiều công việc Django hơn nên đó có thể là một yếu tố. Phải nói rằng, cộng đồng web2py gần đây đã thiết lập các giải pháp chuyên gia để bạn có thể phát huy các kỹ năng và khả năng sẵn có của mình trong tương lai.

Chúc vui vẻ!


Cảm ơn Knitatoms, tôi thực sự đã học ruby ​​và tôi đang vượt qua và học python, nó có vẻ rất giống nhau cho đến nay. Về những gì tôi muốn làm với một khuôn khổ, điều này sẽ hoàn toàn là xây dựng một công ty khởi nghiệp web trong tương lai gần. Tôi cũng muốn xây dựng một cái gì đó bằng jquerymobile vì tôi đã từng chơi với nó.
RubyGladiator

2
Thật thú vị khi nghe - tôi đang ở một vị trí tương tự và vì tôi sẽ làm việc cho chính mình và do đó chọn khuôn khổ của riêng mình, tôi đã sử dụng web2py và rất vui cho đến nay.
keybits

10

Tôi là một noob hoàn chỉnh với cả Web2py và DJango, nhưng tôi muốn có một khuôn khổ web tuyệt vời để chơi, tìm hiểu và tạo giao diện người dùng cho một cơ sở dữ liệu đơn giản. Tôi đã xem web2py nhưng không thể tìm thấy bất kỳ hướng dẫn nào phù hợp, nhắm mục tiêu đến người mới hoàn chỉnh, khi tôi cài đặt web2py, rất dễ dàng, tôi không biết phải làm gì tiếp theo, dường như không có hướng dẫn nào hướng dẫn tôi cách tạo một ứng dụng web đơn giản (không chỉ hello world). Mặt khác, DJango đã Viết phần 1 Ứng dụng DJango đầu tiên của bạn . Điều này thực sự rất tốt, giới thiệu cho người mới về cách thiết lập và sử dụng framework bằng cách viết một ứng dụng web đơn giản. Cho đến khi Web2Py đưa ra điều này, phiếu bầu của tôi sẽ thuộc về DJango.


Tôi đã học Web2py từ việc không biết Python hay cơ sở dữ liệu bằng cách xem: youtube.com/… Ngay sau đó, tôi đã xây dựng hai dịch vụ web sản xuất cho một doanh nghiệp quy mô lớn và cơ sở người dùng với Web2py. Rất cảm ơn cộng đồng các nhóm Google!
Hoạt động trước

6

Trong nhiều từ: (như tôi đã hiểu)

Web2py chắc chắn dễ dàng hơn và làm cho mã đơn giản và sạch sẽ hơn. Nhưng Django cho bạn hiểu rõ hơn về những gì đang diễn ra và cũng có nhiều quyền lực hơn để sửa đổi thiết kế / quy trình.

Web2py tập trung nhiều hơn vào "đơn giản tốt hơn phức tạp", nhưng Django tập trung nhiều hơn vào "rõ ràng là tốt hơn ẩn". Hai phần của The Zen of Python, vì vậy rất khó để nói khung nào là Pythonic hơn.


9
Trên thực tế, đôi khi tôi thấy Web2Py khá đối lập, phức tạp - điều này chống lại " phức tạp còn hơn phức tạp ". Khả năng tương thích ngược, tên trùng lặp, thực thi ngầm định của nhiều tệp khác nhau, các biến toàn cục bị treo ở khắp mọi nơi - tất cả những vấn đề này dẫn đến một khung Python trái ngược với triết lý của Python.
Tadeck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.