8

これは、私が 1 週間ほど前に尋ねた2 つの 質問のフォローアップです。その結果、Web 用の AI ベースのアプリケーションのプロトタイプを作成していたので、どの言語を使用するかを考えました。結論としては、Python のようなものを選び、重要なビットを Java や C/C++ のような高速なものに変換する必要があるように思われました。

それは私には問題ないように思えますが、Python が Web アプリケーションの構築に使用するのに本当に適切な言語であるかどうか疑問に思っています。私が過去に取り組んできたほとんどの Web アプリケーションは C/C++ CGI で、次に php でした。php を使用すると、ユーザー インターフェイスをバックエンドに簡単にリンクできるようになり、より論理的な意味を持つようになりました。

私は以前にPythonを使用したことがありませんが、基本的に疑問に思っているのは、PythonでのCGIプログラミングはどれほど簡単ですか? HTMLコードをテンプレートに保存し、CGIにそれらを読み込ませて特別なコードを適切な値に置き換える必要があるC / C ++での面倒な方法に戻る必要がありますか、それともテンプレートコードはphpと同じですか?

私はおそらくここで非常に無知な質問をしているでしょう. 私の全体的な質問は次のとおりです。Python で Web アプリケーションを作成するのは良い考えですか? PHP と同じくらい簡単ですか?

4

4 に答える 4

17

Python は良い選択です。

ただし、CGI モデルは避けたいと思います。リクエストごとにインタープリターの起動に大きなペナルティを支払うことになります。ほとんどの Python Web フレームワークは WSGI 標準をサポートし、無数の方法でサーバーに接続できますが、ほとんどの場合、Web サーバーが (プロキシ、FastCGI、SCGI などを介して) 通信する何らかの長時間実行プロセスで動作します。

フレームワークといえば、Python ランドスケープはフレームワークの機が熟しています。これは良いことでもあり悪いことでもあります。多くの優れたオプションがありますが、初心者にとっては気が遠くなる可能性があります.

Web/DB/テンプレートの統合が事前にパッケージ化されているものを探している場合は、DjangoTurboGears、またはPylonsを検討することをお勧めします。個々のコンポーネントをより詳細に制御したい場合は、CherryPyColubridまたはweb.pyを見てください。

「PHP並みに簡単」かどうかは主観です。通常、Python Web プログラミングの世界では、テンプレートとアプリケーション ロジックを分離しておくことをお勧めしますこれにより、作業が楽になります。一方、ページのすべてのコードを PHP ファイルに記述できることは、「簡単」のもう 1 つの定義です。

幸運を。

于 2008-11-14T15:59:24.410 に答える
8

「Python での CGI プログラミングはどれくらい簡単ですか?」Cよりも簡単です、それは確かです。Python の方が簡単なのは、単純に、C よりも扱いやすい言語だからです。何よりもまず、メモリの割り当てと割り当て解除がないことです。さらに、OO プログラミング モデルは優れています。

本質的な言語の単純さを超えて、Python WSGI標準は CGI 標準よりもはるかに簡単に対処できます。

ただし、すべて Python フレームワーク ( TurboGearsCherryPyDjangoなど)の大幅に単純化された世界と比較すると、生の CGI は非常に苦痛です。

フレームワークは、多くの (必要な) 構造を課します。CGI プログラマーの独創的な経験は、学ぶことが多すぎるということです。真実。すべての新しいことは学ぶには多すぎます。しかし、その価値は投資をはるかに上回っています。

Django を使用すると、数分で起動して実行できます。真剣に。 django-admin.py startprojectすぐに実行できるものがあります。URL を設計し、ビュー関数を記述し、ページ テンプレートを設計する必要があります。そのすべてが仕事です。しかし、C の CGI よりも手間が かかりません。

Django は、プレゼンテーション テンプレートが処理から完全に分離されているため、PHP よりも優れたアーキテクチャを備えています。これは、Django フレームワークで自由で制約のない PHP スタイルを使用する場合に、多少の混乱を招きます ( Djangoテンプレート内に Python コードを配置するたびに構文エラーを参照)。

ユーザー インターフェイスをバックエンドにリンクする

Python フロントエンド (Django など) は、Python ビュー関数を使用します。これらのビュー関数には、Python コードを含めることができます。これには、必要に応じて、C で記述され、Python から呼び出し可能なモジュールが含まれます。

つまり、Python に適したインターフェイスでCLIPSモジュールをコンパイルできます。importこれは、ステートメントを使用して Python コードで使用できるものになります。

ただし、Django ページが CLIPS エンジンの終了を待機しているため、効果がない場合もあります。別の方法は、名前付きパイプのようなものを使用することです。

名前付きパイプから読み取る、完全に C で記述された CLIPS ベースのアプリがあります。完全に Python で記述された Django アプリケーションは、その名前付きパイプに書き込みます。2 つの独立したプロセスがあるため、このようにすべてのコアをすぐに使い切ることができます。

于 2008-11-14T16:28:03.433 に答える
5

Djangoをお勧めしますが、「php と同じくらい簡単」なものを求める場合は、PSP ( Python Server Pages ) を確認する必要があります。Django は Web サイトを実行するための完全なフレームワークですが、PSP はフレームワークなしで PHP と同じように使用できます。

于 2008-11-14T16:08:08.683 に答える
3

php よりも python の方が簡単に Web アプリを作成できます。特に、python は壊れた言語ではないためです。

mod_wsgi をサポートする Web フレームワークを選択するか、独自のフレームワークを展開してください。WSGI アプリは、慣れれば非常に簡単にデプロイできます。

テンプレートが必要な場合、genshi は私が見つけた Python 用の最高のテンプレート エンジンであり、好きなように使用できます。

于 2008-11-14T16:17:29.103 に答える