2010-04-10 7 views
16

Tôi muốn tạo một ứng dụng chạy trên máy tính người dùng, ứng dụng độc lập, cài đặt và không, nhưng tôi muốn giao diện là trình duyệt, nội bộ và được hiển thị dưới dạng cửa sổ OS hoặc có thể truy cập bên ngoài bằng trình duyệt (tức là một số máy chủ http).Ứng dụng Máy tính để bàn Python với Trình duyệt dưới dạng giao diện?

Lý do là vì tôi biết một chút về Python, nhưng tôi nghĩ rằng tôi có thể quản lý miễn là tôi có một số gốc cơ bản mà tôi có thể sử dụng và thao tác, và đó sẽ là HTML, CSS và Javascript.

Tôi chưa tìm thấy một công cụ GUI tốt mà tôi có thể sử dụng và luôn từ bỏ ý tưởng sau khi cố gắng xáo trộn và cuối cùng không nhận được bất kỳ thứ gì.

Trả lời

7

Python cung cấp hai điều cần được quan tâm của bạn:

  • một máy chủ web trong thư viện chuẩn
  • một giao diện standartized cho các ứng dụng web, gọi WSGI

Vì vậy, nó là tương đối dễ dàng thêm giao diện web vào ứng dụng của bạn. Ví dụ trong Mercurial (hệ thống phiên bản), bạn có một lệnh hg serve để khởi chạy một máy chủ web.

Để xem python tung ra một máy chủ web và một ứng dụng WSGI, chỉ cần làm:

python -m 'wsgiref.simple_server' 

Bạn có thể nhìn vào mã nguồn wsgiref hoặc một số WSGI hướng dẫn để làm một ứng dụng đơn giản.

Sau đó, bạn có thể muốn sử dụng một khuôn khổ web (ví khuôn mẫu & đồng), nhưng đó là một câu hỏi khác ...

+1

Để hoàn thành, bạn nên đề cập rằng chạy chương trình phụ trợ dưới dạng máy chủ http localhost wsgiref có nghĩa là nó có sẵn cho bất kỳ người dùng nào đã đăng nhập vào máy không chỉ người dùng khởi chạy máy chủ. Nếu bạn là người dùng duy nhất thì đó không phải là vấn đề; có lẽ nó thậm chí có thể được coi là một tính năng nếu có nhiều người dùng. –

2

Bạn có thể sử dụng Pyjamas. Đó là một cổng của Google Web Toolkit để Python, mà về cơ bản có nghĩa là bạn viết bằng Python và nó được biên dịch sang HTML và JS.

+0

Đã chết. Âm thanh tốt mặc dù ... – Eli

+5

Ngoại trừ nó không phải là, vì cam kết mới nhất của nó chỉ là một vài tuần trước đây. –

+0

hmmm, trang web đã chết vào đêm qua khi tôi kiểm tra :) bây giờ nó đang hoạt động ... – Eli

1

Có rất nhiều công cụ GUI tuyệt vời cho cách bạn muốn làm GUI - HTML, CSS và Javascript. Nếu bạn không biết bất kỳ câu hỏi nào, hãy hỏi trong một câu hỏi riêng biệt với các thẻ phù hợp. Phía Python trong một sắp xếp như vậy không có GUI riêng của nó, nhưng chỉ chạy một lớp con của máy chủ HTTP của thư viện chuẩn của Python, chỉ phục vụ các tệp HTML, CSS và JS và dữ liệu qua JSON trên các URL khác rằng JS có thể tiếp cận với các kỹ thuật Ajax, về cơ bản thực hiện lưu trữ và logi kinh doanh - vì vậy nó xa rõ ràng những gì "công cụ GUI" bạn có thể có thể muốn cho nó ?!

Chỉ tự phát triển mặt Python (ví dụ: IDLE, Wingware, SPE hoặc bất kỳ thứ gì bạn thích) và riêng HTML/CSS/Javascript, với "công cụ GUI" riêng của nó. Tất cả những gì Python sẽ làm với các tệp đó là tĩnh phục vụ chúng, sau khi tất cả.

Bạn có thể nghĩ đến việc sử dụng một số khuôn mẫu bên Python, chẳng hạn như Mojo & c, nhưng đề xuất của tôi là tránh điều đó: thay vào đó, hãy làm theo "kiến trúc máy chủ mỏng". của các lớp logic và lưu trữ nghiệp vụ và làm tất cả GUI hoạt động trong trình duyệt thay thế.

+1

Đây là một cách, nhưng các ngôn ngữ khác (ví dụ .NET) có thư viện cho phép dễ dàng nhúng của một trình duyệt vào một cửa sổ và kịch bản nó hoặc giao tiếp thông qua một API đơn giản. Tôi đã thấy rằng hữu ích trong nhiều trường hợp bản thân mình, nhưng đã không thể tìm thấy một tương đương trong Python. wxPython có một tiện ích trình duyệt, nhưng nó khá lỗi thời và thậm chí không hỗ trợ kịch bản IIRC. Tk không có gì. Có một Webkit nhúng cho một trong những bộ công cụ GUI, nhưng đó là một nỗi đau nghiêm trọng ở phía sau để biên dịch và tích hợp. –

+0

Tôi nghĩ rằng tôi đang tìm kiếm những gì Max đang nói đến, một trình duyệt nhúng có thể giao tiếp trực tiếp thông qua JS API với ứng dụng dành cho máy tính để bàn. – Eli

0

Bạn đang phải dùng đến một trình duyệt web chỉ vì bạn đã gặp khó khăn với Python công cụ tiện ích con, như Tkinter, wxpython và pyqt?

Bạn đã thử Qt Designer chưa? Đó là một nhà thiết kế GUI đồ họa, làm cho nó rất nhanh chóng và dễ dàng để phát triển giao diện tuyệt vời của GUI. Nó được cài đặt tự động với PyQt.

http://www.riverbankcomputing.co.uk/software/pyqt/download

+0

Có và không. Tôi gặp sự cố với bộ công cụ GUI và đối với tôi, với tư cách là nhà phát triển web, việc tiếp cận với HTML và JavaScript chuẩn dễ dàng hơn nhiều. Qt không chỉ hoạt động cho các ứng dụng phi thương mại nếu tôi không có giấy phép Qt? – Eli

+1

@Eli, Qt có giấy phép LGPL/Thương mại kép. Về cơ bản, nếu bạn có kế hoạch xuất bản ứng dụng của mình, bạn cần phải mở nguồn ứng dụng đó hoặc có được giấy phép thương mại. –