2011-10-12 30 views
6

我將在python中編寫相當複雜的命令行應用程序。我想利用純粹的Python以外的東西,也許是一個框架,或者使應用程序中的服務和代碼管理更容易的東西。我想在我看來,我在想MVC,因爲應用程序將有幾個不同的命令(控制器)調用不同的數據源(JSON請求,REST請求等,例如MVC中的「Models」),然後以不同的格式顯示結果(視圖)。命令行python應用程序和框架

我認爲MVC適用於此,但我並沒有真的在做一個Web應用程序。我想要的東西不一定需要Web服務器,但具有強制編碼標準的框架的優點。

有沒有人有任何提示或建議?我知道我可以用Python從頭開始構建一些東西,但我只是好奇,如果有什麼其他東西可以利用。

感謝, 達斯汀

回答

0

公平地模式,MVC不綁定到Web應用程序。我認爲,由於過去幾年網絡感知的趨勢,MVC和網絡應用程序之間的這種關係可能會增長。換句話說,一個Web應用程序可以使用MVC,但使用MVC並不一定意味着你有一個Web應用程序。

如果你想使用一個框架,你可以嘗試使用最接近你預期的控制器。我不知道有一個命令行作爲接口的MVC框架,但是一些使用它的平臺無關的GUI框架是例如GTK+QT:兩者都有python綁定。

從個人角度來看,我之前使用過Django。雖然技術純度可以作爲討論的一個要點,但在選擇框架時,沒有人會強制您使用框架的所有組件。 Django有一個很好的ORM,我非常喜歡它,所以我將它作爲SSH操作界面的後端。這可能是矯枉過正,但對我來說,我有這樣的優勢,即可以重新使用我對系統的知識,而不是學習一種新的,曾經使用過的框架。

總之,這一切都歸結爲紀律。即使是最好的框架也不能阻止你違反編碼標準和偷工減料......

PS如果你在Linux上,你可能會考慮在你的命令行前端使用python的curses模塊。

+0

不,MVC沒有綁定到web應用程序:) http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#History – Honza

20

這是有點晚了,但是對於張貼別人誰碰到這個失蹄:

水泥是一種先進的CLI應用程序框架爲Python。入門很簡單,並且從登錄到配置文件解析幾乎可以自定義它的每一部分,這非常靈活。水泥2(代號波特蘭)目前正處於測試階段,但非常接近一個穩定的版本:

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

此外,如果要創建一個REST命令行客戶端,還簽到頭:

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

它也很容易入門,並且對於從請求處理程序進行定製,以及在發送端和接收端如何進行序列化都非常靈活。

我很樂意回答有關任何問題。

+0

僅供參考,Cement2.2已停用,穩定在http://builtoncement.com/ – DuffJ

+0

除DOCS之外,CEMENT還有其他任何教程嗎?對於我正在進行的一個項目來說這似乎很完美 – ProfVersaggi