2011-10-12 25 views
6

Tôi sẽ viết một ứng dụng dòng lệnh khá tinh vi trong python. Tôi muốn tận dụng thứ gì đó không chỉ là python thuần túy, có thể là một khung công tác hoặc thứ gì đó giúp cho việc quản lý các dịch vụ và mã trong ứng dụng trở nên dễ dàng hơn. Tôi nghĩ trong đầu, tôi nghĩ MVC, vì ứng dụng sẽ có nhiều lệnh khác nhau (bộ điều khiển) gọi các nguồn khác nhau cho dữ liệu (yêu cầu JSON, yêu cầu REST, v.v., ví dụ như "Mô hình" trong MVC), và sau đó hiển thị kết quả ở các định dạng khác nhau (Chế độ xem).dòng lệnh ứng dụng python và khuôn khổ

Tôi nghĩ MVC hoạt động tốt cho điều này, nhưng tôi không thực sự làm một ứng dụng web. Tôi muốn một cái gì đó mà không nhất thiết yêu cầu một máy chủ web, nhưng có những lợi thế của một khuôn khổ để buộc một số tiêu chuẩn mã hóa.

Có ai có bất kỳ mẹo hoặc đề xuất nào không? Tôi biết tôi có thể xây dựng một cái gì đó từ đầu với Python, nhưng tôi chỉ tò mò nếu có cái gì khác ra khỏi đó tôi có thể sử dụng.

Cảm ơn, Dustin

Trả lời

0

Để công bằng cho các mô hình, MVC không bị ràng buộc vào các ứng dụng web. Tôi nghĩ vì xu hướng nhận thức web trong vài năm qua mối quan hệ này giữa MVC và các ứng dụng web có thể đã phát triển. Nói cách khác, một ứng dụng web có thể sử dụng MVC, nhưng việc sử dụng MVC không nhất thiết có nghĩa là bạn có một ứng dụng web.

Nếu bạn muốn sử dụng một khung công tác, bạn có thể cố gắng sử dụng khung gần nhất với bộ điều khiển dự định của mình. Tôi không nhận thức được một khuôn khổ MVC có một dòng lệnh như giao diện, nhưng một số nền tảng GUI độc lập sử dụng nó là ví dụ GTK+ hoặc QT: cả hai đều có các ràng buộc python.

Từ quan điểm cá nhân, tôi đã sử dụng Django cho mục đích này trước đây. Mặc dù độ tinh khiết kỹ thuật có thể là một điểm thảo luận, khi chọn một khung công tác không ai buộc bạn phải sử dụng tất cả các thành phần của khung công tác. Django có một ORM đẹp mà tôi đã thích rất nhiều mà tôi đã làm cho nó phụ trợ cho một giao diện hoạt động SSH. Nó có thể là quá mức cần thiết, nhưng đối với tôi có lợi thế là tôi có thể tái sử dụng kiến ​​thức của mình về hệ thống thay vì học một khuôn khổ mới, một lần được sử dụng.

Tóm lại, tất cả đều tóm tắt theo kỷ luật. Ngay cả khung tốt nhất cũng không thể ngăn bạn vi phạm các tiêu chuẩn mã hóa và góc cắt ...

PS nếu bạn sử dụng Linux, bạn có thể xem xét sử dụng mô-đun curses của python cho giao diện dòng lệnh của bạn.

+0

Không, MVC không bị ràng buộc với các ứng dụng web :) http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#History – Honza

20

Đây là hơi muộn, tuy nhiên đăng cho bất kỳ ai khác tình cờ xem qua điều này:

Xi măng là một khung ứng dụng nâng cao CLI cho Python. Bắt đầu dễ dàng và cực kỳ linh hoạt để tùy chỉnh hầu hết mọi phần của nó từ việc ghi nhật ký đến phân tích cú pháp tệp cấu hình. Cement2 (mã tên portland) hiện đang trong phiên bản beta, nhưng rất gần với một phiên bản ổn định:

http://cement.readthedocs.org/en/portland/

Ngoài ra, nếu bạn đang tạo ra một dòng client command REST, cũng kiểm dRest:

http://drest.readthedocs.org/en/latest/

Nó cũng rất dễ dàng để bắt đầu và cũng cực kỳ linh hoạt để tùy chỉnh từ trình xử lý yêu cầu, để việc serialization diễn ra như thế nào trên cả hai đầu gửi và nhận.

Tôi rất sẵn lòng trả lời bất kỳ câu hỏi nào.

+0

FYI, Cement2.2 đã hết và ổn định tại http://builtoncement.com/ – DuffJ

+0

Có bất kỳ hướng dẫn nào ngoài đó cho XI MĂNG ngoài DOCS không? Nó có vẻ hoàn hảo cho một dự án tôi đang ở trên ... – ProfVersaggi

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