23

私はPHPを何年も使用しています。最近、 PHPが時代遅れである、最新のプログラミング言語がより簡単で、より安全であるなどと述べている多くのフォーラム投稿に出くわしました。

そこで、Pythonの学習を始めることにしました。私はPHPの使用に慣れているので、次のコマンドを使用して.htaccessファイルをアップロードすることでページの作成を開始しました。

addtype text/html py
addhandler cgi-script .py

次に、私のサンプルページは次のようになります。

#!/ usr / bin / python
「content-type:text / html \ n\n」を出力します
「htmlタグ、その他のものなど」を印刷します

これは正常に機能します。しかし、投稿の中で、 CGIはPythonを使用するための最良の方法ではないというコメントに出くわしました。もちろん、それは最良の方法が何であるかについては言及していませんでした。

CGIを使用することがPythonを使用する最良の方法ではないのはなぜですか?代替手段は何ですか?

単純なPythonサイトを設定する他の方法はありますか?.htaccessファイルと.pyファイルの外で見なければならない完全に異なるパラダイムはありますか?

関連している

4

6 に答える 6

13

クラシックCGIは、何かを使用するための最良の方法ではありません。従来のCGIサーバーでは、リクエストごとに新しいプロセスを生成する必要があります。

Pythonに関しては、いくつかの選択肢があります。

于 2009-03-10T12:35:50.293 に答える
5

CGI を使用することが Python を使用する最良の方法ではないのはなぜですか?

私はCGIのために少し固執します。開発環境に適しています。

配線は簡単で、モジュールのリロードの問題を心配する必要はありません。当然、パフォーマンスはひどいですが、開発者にとっては気にしません。

もちろん、CGI に直接書き込むのではなく、WSGI インターフェイスに書き込む必要があります。次に、以下を使用して CGI を介してデプロイできます。

wsgiref.handlers.CGIHandler().run(application)

そして、同じアプリケーション オブジェクトを使用して mod_wsgi を介して展開します。他の WSGI サーバーは、速度が重要な運用環境 (および可能な限り運用に近づけたいテスト環境) で好みます。

于 2009-03-10T14:27:20.650 に答える
3

mod_wsgiが適切な代替手段です。ほとんどすべての面でCGIよりも望ましいです。

于 2009-03-10T12:35:41.540 に答える
3

本当にそれは効率的なことです-CGIはすべてのリクエストに対してまったく新しいプロセスを生み出しますが、これはそれが行うことに対して非常に重いものです。

PHPはCGIを介して実行することもできますが、mod_phpはapache内にインタープリターを埋め込みます。同じ仕事をするmod_pythonと、Yuvalが言うようにmod_wsgiがあります。

于 2009-03-10T12:38:39.117 に答える
2

Pythonのドキュメントには、さまざまな可能性の長所と短所を説明するページがあります。

mod_python

(…)これらが、新しいプログラムを作成するときにmod_pythonを避ける必要がある理由です。

WSGI

Webサーバーゲートウェイインターフェイスまたは略してWSGIは、現在PythonWebプログラミングの最良の方法です。フレームワークを作成するプログラマーにとっては素晴らしいことですが、普通の人はフレームワークに直接触れる必要はありません。

FastCGIなど

最近では、FastCGIが直接使用されることはありません。

于 2009-03-10T12:52:07.290 に答える
2

他の人が行う提案は別として、何らかのフレームワークの使用を実際に検討する必要があります。FastCGI、 mod_python 、または mod_wsgiを使用することはできますし、使用する必要がありますが、これらは直接コードを記述することを意図したものではありません。次のいずれかを提案できますか?

  • django (実用的なアプリケーションで私のお気に入り)
  • パイロン
  • cherrypy (あまり実用的ではないアプリケーションの私のお気に入り)
  • web.py
于 2009-03-10T12:42:36.703 に答える