2009-12-10 69 views
11

Bây giờ tôi đã quen thuộc với web2py, tôi muốn cung cấp cho Django một lượt.Django dành cho nhà phát triển web2py

Sự khác biệt chính là gì?

Cách hiệu quả nhất để bắt đầu tính đến kiến ​​thức về web2py là gì? (Nó phải giúp đỡ để có một số ứng dụng python kiến ​​thức khuôn khổ, không có?)

EDIT

Ngoài ra, nếu bạn đã sử dụng cả hai, có thể giúp bạn đưa ra một ý kiến ​​mà bạn thích và tại sao?

+1

Tôi tin rằng trước tiên bạn phải chắc chắn rằng bạn biết Python.Web2py không hoạt động như mã Python thông thường sẽ hoạt động - không gian tên chung là một mớ hỗn độn, nhiều thứ được nhập ngầm, thật khó để gọi mã nội bộ của web2py là _pythonic_ và đôi khi bạn nhấn vào tường (ví dụ, nếu bạn định nghĩa cơ sở dữ liệu 'db' trong 'db.py', theo gợi ý của hướng dẫn, thì biến' db' toàn cục sẽ có thể truy cập được trong 'models.py' và ví dụ' people.py', nhưng không có trong 'contacts.py'). Chỉ cần tìm hiểu để kiến ​​trúc sư mã của bạn đúng cách một lần nữa, không phải là cách web2py hoạt động, nhưng cách mã Django hoạt động. – Tadeck

Trả lời

25

web2py được rất nhiều cảm hứng bởi Django và nếu bạn biết một trong đó là dễ dàng để tìm hiểu khác. Chúng tôi đã thêm một số tính năng mà chúng tôi không tìm thấy ở Django, bao gồm: di chuyển cơ sở dữ liệu (thay đổi bảng tự động), vé lỗi, IDE dựa trên web, lớp trừu tượng cơ sở dữ liệu hoạt động trên Google App Engine, cơ chế kiểm soát quyền truy cập dựa trên vai trò với thông tin đăng nhập có thể cắm mô-đun.

Một trong những khác biệt thiết kế cơ bản là trong các ứng dụng Django được triển khai dưới dạng mô-đun và do đó bạn cần phải khởi động lại máy chủ khi bạn chỉnh sửa chúng. Trong web2py thay vì Models/Views/Controllers không phải là các module, chúng được thực hiện (không được import) bởi các framework và do đó bạn không cần phải khởi động lại máy chủ khi chúng thay đổi.

Một điểm khác biệt là Django sử dụng ORM, web2py sử dụng DAL. DAL là mức thấp hơn một chút so với Django ORM và điều này làm cho nó gần gũi hơn với cú pháp SQL (ví dụ như cho phép các phép nối trái, các tập hợp tùy ý, các lựa chọn lồng nhau và các kết hợp của chúng) trong khi còn lại (chúng tôi hỗ trợ 10 cơ sở dữ liệu khác nhau). DAL cũng giúp dễ dàng thực hiện lập trình meta động của các mô hình (chẳng hạn như tạo các mô hình tại thời gian chạy dựa trên các thông số được lưu trữ trong tệp chẳng hạn như tệp XML hoặc CSV).

Django đã hoạt động lâu hơn nên bạn sẽ tìm thấy nhiều người có kỹ năng hơn và nhiều ứng dụng hơn được triển khai.

+4

Bạn không cần phải khởi động lại máy chủ Django của bạn khi bạn thay đổi mã của bạn (http://www.djangoproject.com/weblog/2005/jul/20/autoreload/). Có vẻ như điều này đã đúng kể từ giữa năm 2005. – MikeWyatt

+2

Không nếu bạn sử dụng máy chủ Django nhưng - nếu tôi không nhầm - bạn cần phải khởi động lại Apache nếu bạn chạy Django với Apache + mod_wsgi hoặc mod_python. Trong web2py bạn không cần phải khởi động lại máy chủ web ngay cả khi bạn không sử dụng trình cài sẵn. – mdipierro

+1

Bạn không cần phải khởi động lại Apache, bạn có thể tải lại mod_wsgi hoặc fcgi. – rapadura

6

Nó chắc chắn sẽ giúp bạn có kiến ​​thức về một số khung công tác python.

cách hiệu quả nhất để bắt đầu sẽ là, để so sánh các lĩnh vực khác nhau của hai, tức là Model, View, Controller, Url Dispatching, Templates, Forms vv

Here là một so sánh lớn trong số ít các khuôn khổ . Chắc chắn nó sẽ giúp.

+0

Liên kết không hoạt động nữa. Bạn có thể tìm thấy tài nguyên bạn đang đề cập đến và cập nhật liên kết không? Nó sẽ rất tuyệt. Cảm ơn. – Tadeck

4

Tôi là một lập trình viên Django trước khi giải quyết trên web2py. Tôi thấy mình hiệu quả hơn với web2py, có thể là do mặc định hợp lý (nhập khẩu ngầm định, chế độ xem mặc định, v.v.) và hỗ trợ tuyệt vời tại forum.

9

Tôi đã tạo một ứng dụng web nhỏ trong nhà hoàn toàn ở Django và sau đó hoàn toàn trong web2py. Đó là cách duy nhất để thực sự hiểu được sự khác biệt và tác động của chúng đối với trải nghiệm của nhà phát triển.

Tôi thích web2py vì có nhiều tiện ích hơn được xây dựng trong môi trường hơn được cung cấp bởi Django, nhưng web2py mới hơn nhiều so với Django, và hindsight luôn làm cho việc triển khai mới dễ dàng hơn. Kể từ khi web2py đã đảm bảo khả năng tương thích ngược, nó là hoàn toàn hợp lý rằng một số công cụ mới làm cho web2py lỗi thời trong một vài năm kể từ bây giờ. Đó là cách bình thường của sự vật.

Nhưng dù sao, chúng rất gần nhau, nhiều hơn so với bất kỳ khung web nào khác so với một trong hai khung.Từ quan điểm của một khung công tác web dựa trên Java chẳng hạn, chúng có vẻ gần như giống nhau.

+1

Điểm tốt, +1. Nhưng sự khác biệt _real_ rõ ràng có thể nhìn thấy khi bạn đang cố gắng làm một cái gì đó tiên tiến hơn, tùy biến hơn trong cả hai khung công tác. Tôi tin rằng bạn có thể thấy rằng Django vượt trội so với Web2Py, vì bạn đã rõ ràng về những gì xảy ra trong ứng dụng của bạn, cũng như tất cả các tính năng của Web2Py, hoặc có thể dễ dàng triển khai ở Django. Có một số khác biệt, như thiếu IDE dựa trên web ở Django (có thể có một mô-đun cho nó), nhưng ít nhất Django được giải thích đúng bởi các IDE khác nhau, và có khả năng tùy biến cao và ổn định. – Tadeck

+2

@Tadeck: về trải nghiệm của tôi với web2py, tôi đã chuyển các trang web thành công, rất rõ ràng về những gì đang diễn ra trong ứng dụng của tôi, không cần phải thực hiện lại các tính năng, sử dụng web2py trong một IDE tốt (PyDev Eclipse), đóng góp mã lên thân cây , có kinh nghiệm ổn định hoàn hảo (web2py đảm bảo tương thích về phía trước!), góp phần vào cuốn sách web2py, và thường được hưởng sự tương tác với một cộng đồng thân thiện. Tôi chắc chắn tất cả những điều này là có thể với Django quá. Chỉ cần nói. –

11

Django = cũ web2py = new

Bất cứ điều gì Django làm, web2py làm tốt hơn. Điều này là do web2py đã được thực hiện rất lâu sau khi django và đã học được từ những sai lầm của Django, mặc dù nó làm cho tất cả các sai lầm mới;)

khác biệt chính, và những gì đang giữ tôi trong web2py:

  1. Django có tài liệu đáng kinh ngạc ... web2py trực quan đến nỗi nó không cần nhiều ... HÃY BAO GIỜ! Tôi thấy rằng tài liệu Django có thể áp dụng cho web2py, phần lớn. Nếu bạn dành một ngày và đọc sách django (Ch 1-7), bạn sẽ nhận được ý tưởng về điều đó là đúng. Vì vậy, trong một cách, nói Django là tài liệu tốt hơn là asinine. Ngoài ra, lưu ý rằng bất kỳ khung công tác nào xung quanh nói về khối lượng tài liệu cho nó như là một điều tốt ... được quan tâm ... tài liệu là tốt, không cần bất kỳ để bắt đầu với = tốt hơn. Tài liệu hiện có của Web2py đáp ứng nhu cầu của 90% người dùng. 10% còn lại phải đi xem mã thư viện khung (không nhiều như Django và không đáng sợ). Ngoài ra, nếu bạn nhận được điểm mà bạn đang chi tiêu nhiều hơn 30% thời gian của bạn đi qua mã thư viện, đó là thời gian để di chuyển ra khỏi khuôn khổ và di chuyển về phía bộ sưu tập của thư viện (chẳng hạn như giá treo). Tại thời điểm đó, điều đó có nghĩa là bạn không làm bất kỳ điều gì mà khung công tác web được thiết kế để xử lý ...

  2. SQLForm in Django là TextModel. Khi bạn tạo một biểu mẫu bằng cách sử dụng TextModel (= SQLForm). Chúc may mắn cố gắng thay đổi CSS của một trường nhập liệu duy nhất! Trong web2py bạn chỉ cần làm form.element(), không có điều như vậy trong Django. Bạn phải đi qua "widget()", nhưng để đến tiện ích, trước tiên bạn phải đi qua loại trường nhập, v.v ...

  3. Ngoài ra, lược đồ thay đổi DB thủ công ...? Rất tiếc ... phải tải xuống và cài đặt ứng dụng di chuyển riêng biệt (Nam) hoặc phải thực hiện thủ công trong bảng điều khiển DB của bạn.

  4. Cuối cùng, không ra khỏi hộp hỗ trợ cho nhiều DBS ... nghĩ hoops ...

Nói cách khác ... với Django ... hy vọng bạn thích nhảy và hoops.

Nếu bạn muốn thực sự có một bước nhảy về phía trước từ web2py, hãy thử giá treo ... nghiêm túc ...

nhược điểm lớn nhất của web2py là tuổi của nó và cơ sở mã nhỏ ... Đây không phải là không hợp lý tuy nhiên, xem xét Django giống như khuôn khổ web python đầu tiên để thực hiện các ý tưởng RAD phong cách RAILS và giống như gấp đôi tuổi của web2py. Web2py vẫn còn trong phần đầu tiên của nó trong cuộc sống của nó ... Django là trong phần khối lượng quan trọng vượt ra ngoài để từ chối ... web2py nên đạt khối lượng quan trọng bất cứ ngày nào bây giờ trong 2 năm tới, tôi dự đoán.

KẾT LUẬN Dành một ngày, đọc cuốn sách django (ch 1-7), và đọc những cuốn sách giá treo (Phần 1), và sau đó suy nghĩ về lý do tại sao bạn đang sử dụng một khuôn khổ để bắt đầu với. Đối với tôi, nó đã được thực hiện càng nhiều càng tốt, và không cần tìm kiếm tài liệu 30% thời gian.

Web2py đáp ứng các nhu cầu trên đối với tôi.

Các vấn đề liên quan