最も単純な Web プログラムは CGI スクリプトです。これは基本的に、標準出力が要求を行った Web ブラウザにリダイレクトされる単なるプログラムです。このアプローチでは、すべてのページに独自の実行可能ファイルがあり、リクエストごとにロードして解析する必要があります。これにより、何かを起動して実行するのは非常に簡単になりますが、パフォーマンスと組織の両方の点でうまく拡張できません。そのため、大規模なシステムに成長しない非常に動的なページが非常に迅速に必要な場合は、CGI スクリプトを使用します。
これからの 1 つのステップは、Python コードを PSP などの HTML コードに埋め込むことです。現代のテンプレートシステムではこれがかなり時代遅れになっているため、今日では多くの人がこれを使用していないと思います。私はしばらく PSP を使用していましたが、基本的に CGI スクリプトと同じ組織上の制限 (すべてのページに独自のファイルがあります) があることに加えて、空白を無視する HTML と空白に敏感な Python を混在させようとすると、空白に関連する煩わしさがいくつかあることがわかりました。
次のステップは、私も使用した web.py などの非常に単純な Web フレームワークです。CGI スクリプトと同様に、何かを起動して実行するのは非常に簡単で、複雑な構成や自動生成されたコードは必要ありません。独自のコードは非常に簡単に理解できるため、何が起こっているかを確認できます。ただし、他の Web フレームワークほど機能が豊富ではありません。前回使用したときは、セッション追跡がなかったため、自分でロールバックする必要がありました。また、Guido ("upvars(), bah") を引用するには「あまりにも多くの魔法の動作」があります。
最後に、Django などの機能豊富な Web フレームワークがあります。単純な Hello World プログラムを機能させるには少し手間がかかりますが、すべての主要なプログラムには、よく練られた優れたチュートリアル (特に Django) が用意されており、順を追って説明しています。利便性、機能、ドキュメントなどから、実際のプロジェクトにはこれらの Web フレームワークのいずれかを使用することを強くお勧めします。
最終的には、あなたが好むものを決定する必要があります。たとえば、フレームワークはすべてテンプレート言語 (特別なコード/タグ) を使用して HTML ファイルを生成します。Cheetah テンプレートなどの一部では、テンプレートで何でもできるように、任意の Python コードを記述できます。Django テンプレートなどの他のテンプレートはより制限的であり、プレゼンテーション コードをプログラム ロジックから分離する必要があります。それはあなたが個人的に好むものについてのすべてです。
もう 1 つの例は、URL の処理です。Django などの一部のフレームワークでは、正規表現を使用してアプリケーションで URL を定義する必要があります。CherryPy などの他のものは、関数名によって関数を URL に自動的にマップします。繰り返しますが、これは個人的な好みです。
個人的には、Web サーバー関連 (フォーム パラメーター、セッション処理、URL マッピングなど) に CherryPy を使用し、オブジェクト リレーショナル マッピングとテンプレートに Django を使用して、Web フレームワークを組み合わせて使用しています。私のお勧めは、高レベルの Web フレームワークから始めて、チュートリアルを進めてから、小さな個人プロジェクトに着手することです。私が言及したすべてのテクノロジーでこれを行いましたが、それは本当に有益でした. 最終的には、自分が好むものの感触をつかみ、その過程でより優れた Web プログラマー (および一般的に優れたプログラマー) になるでしょう。