質問

私は、PHPアプリケーションをPythonに移植することを計画しています。アプリケーションは、主にデータの収集と処理に関するものです。メインアプリケーションは、スタンドアロンのコマンドラインアプリケーションとして実行されます。アプリケーションへのWebインターフェイスがあり、これは基本的に非常に軽量なレポートインターフェイスです。

PHPバージョンではフレームワークを使用しませんでしたが、Pythonが初めてなので、Djangoのようなものを使用するのが有利なのか、少なくともGenshiを使用するのが有利なのか疑問に思っています。警告は、アプリケーションと共に配布する必要があるフレームワークの部分によってアプリケーションの配布が圧倒されることを望まないことです。

Pythonでcgiインポートのみを使用するのが、このような状況に最適な方法ですか?フレームワークはオーバーヘッドが大きすぎると思う傾向がありますが、おそらく「python」では考えていません。それらについての方法。このシナリオでどのような提案がありますか?

役に立ちましたか?

解決

コマンドラインPython、IMOが最初に登場します。それがあなたのしていることの中核であるので、それを働かせてください。

問題は、コマンドラインアプリケーションからWebフレームワークのORMを使用することが明らかでないことです。 Djangoは、コマンドラインアプリからORMを使用するための具体的な手順を提供します。これらは最初は迷惑ですが、長期的には命の恩人だと思います。顧客が提供したファイルの巨大なアップロードのために頻繁に使用します。

裸のCGIを使用しないでください。不可能ではありませんが、多くのことが間違っている可能性があり、それらはすべてフレームワークによって解決されています。なぜ再発明するのですか?他の人のコードを使用するだけです。

フレームワークには学習が含まれますが、実際の「オーバーヘッド」は含まれません。彼らは遅くありません。それらはあなたが書いたりデバッグしたりする必要のないコードです。

  1. Pythonについて学習します。

  2. Django チュートリアルを実行します。

  3. Webアプリの構築を開始します。

    a。 Djangoプロジェクトを開始します。そのプロジェクトで小さなアプリケーションをビルドします。

    b。 Django ORMを使用して新しいモデルを構築します。モデルのDjango単体テストを作成します。動作することを確認してください。デフォルトの管理ページを使用して、さまざまな操作を行うことができます。まだ全体のWebサイトを構築しないでください。

  4. Django ORMを使用してコマンドラインアプリを動作させます。基本的に、このアプリがうまく機能するためには、設定ファイルを細かく調整する必要があります。 settings / configuration セクションをご覧ください。

  5. コマンドラインとデフォルトの管理者を実行したら、終了できます Webアプリ。

フレームワークの黄金律は次のとおりです。記述、デバッグ、保守の必要がないコードです。それらを使用してください。

他のヒント

web.py のようなものを使用することを検討するかもしれません。また、他のツールをDjangoのようにフレームワークに送信する必要がないため、他のツールを簡単に適合させることができます。

しかし、これはPythonコミュニティで最も愛されているフレームワークではありませんが、あなたにとっては単なるものかもしれません。 web2py も確認できますが、それについてはあまり知りません。

プロジェクトのサイズに依存します。スタンドアロンアプリケーションを呼び出す以前のphpスクリプトが数個しかない場合は、おそらくcgi-appに行きます。

データベース、URL書き換え、テンプレート、ユーザー管理などに使用している場合は、フレームワークを使用することをお勧めします。

そしてもちろん、移植する前に、言語を切り替えるだけの価値があるかどうか、または必要な特定のPython機能があるかどうかを検討してください。

がんばって!

最近 web.py を使用してPHPアプリをPythonに移植しました。フレームワークが進むにつれて、それは最小限の依存関係で非常に軽量であり、あなたの邪魔にならない傾向があるので、あなたが探している妥協かもしれません。

ただし、すべての初期アプリケーションに依存します。大規模なアプリケーションでは、フル機能のフレームワークで配管を処理することの利点が、すべてのフレームワークコードをドラッグすることに伴う欠点を上回る傾向があるためです。

Djangoを使用すると、Webサイトを迅速に作成できます。これは確かです。あなたはそれを使用するためにPythonマスターである必要はありません、そしてそれはその設計において非常にpython的であり、そして実際には「魔法」がないのです。さらに、Pythonを学習するのに役立ちます。

サンプルから始めて、TwiDからのいくつかのdjangoスクリーンキャストをチェックアウトしてください。

起動を遅くし、管理者を微調整し、シェルを介してそれを再生するのが開始方法です。 ORMを理解し、動作を確認したら、本物のビルドを開始してください!

フレームワークはパフォーマンスの問題を引き起こしません。S。Lottが言ったように、それはあなたが維持する必要のないコードであり、それが最良の種類です。

フレームワークに行きます。 PythonはPHPのようなウェブに特化していないため、セッション処理などの基本的なものを使用しないと悪夢になります。

djangoが多すぎると思う場合は、非常に小さいながらも便利なweb.pyのような、より軽いものを試すことができます。

ピートを愛するなら、フレームワークを使用してください!チェリーピー、ジャンゴ、アホウドリなど、文字通り何十ものフレームワークがあります。実際、膨大な数のWebフレームワークは、Railsの人気を訴えるときに人々が指摘するものです。

Python Web開発コミュニティは、単一の声で分かれています。しかし、それはすべて別のトピックです!ポイントは、「ウェブツールキット」があることです。 (例:アルバトロス)かなり軽量ですが、1日を過ごせるほど強力です(例:ボットの自動検証では、単純なフォーム送信の偽造は行われず、MVCをクリーンに保つこともできません)。

「あまりにも多くのフレームワーク」ではない何かが必要な場合こちらをご覧ください:

http://wiki.python.org/moin/WebFrameworks

「テンプレートを提供する基本的なフレームワーク」をご覧ください。それらはすべて軽量であり、「車輪を再発明しないでください」すべてを実行します。 Macのトラックを無理やり乗せずに持ち歩くことができます。

アプリケーションの配布方法によって異なります。
内部でのみ使用する場合は、djangoにアクセスしてください。それで働くことは喜びです。 ただし、djangoは実際には配布タスクでは不十分です。 django-applicationsは設定が面倒です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top