2009-06-13 24 views
8

Tôi đã tạo cấu trúc mô hình phức tạp trong django. Tôi đã lên kế hoạch để render cấu trúc này bằng cách sử dụng GWT, nhưng với python tùy chọn để giao tiếp với nó là: - sử dụng JSON và trong trường hợp này tôi phải nhân đôi cấu trúc mô hình trong các đối tượng javascript (xem hướng dẫn gwt). - python-gwt-rpc là một thư viện gọi thủ tục từ xa tương thích với gwt, nhưng có vẻ như với tôi rằng nó không dễ dàng tích hợp với các mô hình django, và tài liệu lỗi thời không giúp tôi.Django + GWT hoặc Jquery

Cách thay thế tôi xem xét là sử dụng hệ thống mẫu Django để hiển thị các trang của tôi với một số plugin Jquery UI và phương pháp được đề xuất trong post này để lấy lại dữ liệu html mà không cần xử lý đối tượng JSON vì tôi nghĩ rằng đó là một cơn ác mộng vì trong cấu trúc của tôi khi dữ liệu thay đổi, giao diện cũng có thể thay đổi theo kịch bản.

Vì vậy, tôi nghĩ rằng với GWT tôi phải sao chép các mô hình django trong các đối tượng javascript nhưng tôi đã được hỗ trợ bởi hệ thống lớp con java. Trong giải pháp thứ hai tôi tái sử dụng các mô hình django và sử dụng hệ thống mẫu django sau đó tôi có thể làm cho kiểm tra phía máy chủ, nhưng không phải là một giao diện GWT mát mẻ không phải là cuộc gọi Json nhẹ để cập nhật các trang.

Cách tiếp cận yuor về vấn đề này là gì?

Trả lời

4

Tôi nghĩ bạn cần đưa ra quyết định dựa trên các yếu tố thông thường: bạn cần bao nhiêu thời gian để phát triển ứng dụng của mình và tập hợp các công cụ tốt nhất để phát triển trong thời gian đó là gì.

Nếu bạn đã quyết định rằng Django là khuôn khổ phía máy chủ của bạn (đó là lựa chọn ưa thích của tôi) thì có vẻ khá rõ ràng rằng jQuery, Dojo, v.v. có lẽ sẽ tích hợp dễ dàng hơn với Django của bạn. Mặt khác, nếu bạn có nhiều thời gian hơn và đặc biệt nếu bạn có thể mở nguồn các phần giao diện Django, thì sẽ rất tuyệt khi viết một số mã có thể móc vào nội bộ Django và tạo Javascript cần thiết để liền mạch giao diện với GWT và không vi phạm DRY.

Vì vậy, trong ngắn hạn, nếu bạn phải hoàn thành ứng dụng, hãy sử dụng jQuery. Nếu bạn có nhiều thời gian hơn và muốn một số kudo sau đó phát triển một thư viện liền mạch tốt đẹp cho Django sẽ hiển thị HTML + Javascript thích hợp từ các mô hình và biểu mẫu Django sẽ tích hợp với GWT.

Chỉ cần ý kiến ​​của tôi :)

1

Tôi đã thực sự vượt qua cây cầu này chính xác, và tiếc là tôi tìm thấy nó là tốt nhất để làm cho các đối tượng khách hàng bên trong GWT. May mắn thay, tuy nhiên, điều này có thể dễ dàng thực hiện bằng cách sử dụng JavaScript Overlays và một trình tạo mã nhỏ.

Trình tạo mã của tôi xem xét tệp models.py và trích xuất tất cả các trường thích hợp trước khi plopping chúng vào tệp .java cho GWT. Một khi bạn có điều này, thực hiện các đối tượng mới của bạn là khá dễ dàng.

+0

Jack tuyệt vời! Bạn có thể chia sẻ máy phát điện của bạn tra cứu vào models.py? Nó cũng xử lý các lớp mở rộng? Bây giờ tôi đã nhận ra rằng với các nhu cầu cụ thể của tôi, một danh mục trang web, Jquery và Jquery UI hoạt động tốt, nhưng nếu sau này tôi sẽ cần thêm một số GUI phức tạp, tôi sẽ cần GWT. – capolise

+0

Tôi sẽ đăng mã cho bạn, nhưng tôi khuyên bạn nên xem xét một cách tốt hơn để làm điều đó. Hiện tại tôi sử dụng Perl để phân tích cú pháp các tệp .py. Tôi đã viết nó trước khi tôi có một sự hiểu biết đúng đắn của các tập tin mô hình Django nội tâm. Tôi muốn đề nghị nhìn vào đó, và cuộn của riêng bạn. –

9

Bạn đã xem bộ đồ ngủ chưa?

Đối với tôi, đó là điều tốt nhất của cả hai thế giới. Bạn sử dụng, như thường lệ, Django back-end nhưng có thể dễ dàng sử dụng các dịch vụ JSON RPC từ mã pajama của bạn.

Bạn mã giao diện người dùng khá giống với GWT, nhưng bằng Python thay vì Java.

Dưới đây là hướng dẫn ngắn gọn: http://gdwarner.blogspot.com/2008/10/brief-pyjamas-django-tutorial.html