2011-10-12 9 views
6

私はかなり洗練されたコマンドラインアプリケーションをPythonで書くつもりです。純粋なPython以外の何かを活用したいと思っています。おそらくフレームワークなのか、アプリ内のサービスとコード管理を簡単にするものです。私の考えでは、アプリケーションにはデータ(JSONリクエスト、RESTリクエストなど、MVCの「モデル」など)のさまざまなソースを呼び出すいくつかの異なるコマンド(コントローラ)があるため、MVCを考えています異なるフォーマット(結果)で結果を表示します。コマンドラインのpythonアプリケーションとフレームワーク

MVCはこれでうまくいくと思いますが、実際にはWebアプリケーションを実行していません。 Webサーバーを必ずしも必要としないものがほしいが、いくつかのコーディング標準を強制するフレームワークの利点がある。

ヒントやご意見はありますか?私はPythonを使って何かを構築することができると知っていますが、そこに何か他のものがあれば興味があります。

おかげで、 ダスティン

答えて

0

がパターンに公平であるためには、MVCは、Webアプリケーションにバインドされていません。私は、この2年前のWebを意識した傾向のため、MVCとWebアプリケーションのこの関係が成長したと考えています。別の言い方をすれば、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

しかし、これは、この全体につまずく誰のための投稿、少し遅れている:

セメントは、Pythonのための高度なCLIアプリケーションフレームワークです。始めは簡単で、ロギングから設定ファイルの解析まで、ほぼすべての部分をカスタマイズすることが非常に柔軟です。 Cement2(コード名ポルトランドセメ)は現在ベータ版ですが、安定版リリースに非常に近いです:あなたはRESTコマンドラインクライアントを作成している場合、

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

また、もdRestチェックアウト:

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

これも非常に使いやすく、要求ハンドラからのカスタマイズ、送信側と受信側の両方でシリアル化がどのように行われるかに非常に柔軟です。

いずれかの質問にお答えいただければ幸いです。

+0

FYI、Cement2.2 is out安定してhttp://builtcement.com/ – DuffJ

+0

DOCS以外のCEMENTのチュートリアルはありますか?それは私がやっているプロジェクトには完璧だと思われます... – ProfVersaggi

関連する問題