私は cgi の python に取り組んでいて、Django に出くわしました。私はそれを非常に理解しているかどうかはよくわかりません。apache 内にインストールする必要があるものですか、それとも自分の cgi で使用できるものですか?
知りたいので知りたかったのですが、使用しているサーバーでは多くの権限が与えられていません。
ありがとう
私は cgi の python に取り組んでいて、Django に出くわしました。私はそれを非常に理解しているかどうかはよくわかりません。apache 内にインストールする必要があるものですか、それとも自分の cgi で使用できるものですか?
知りたいので知りたかったのですが、使用しているサーバーでは多くの権限が与えられていません。
ありがとう
CGI の上で Python Web フレームワークを実行することもできますが、そうしたいとは思いません。Web フレームワークは、コーディングを容易にする多くの追加機能を提供しますが、そのために支払う代償の一部は、フレームワークには、その機能を提供する追加のコードがたくさんあります。そのコードは、Web アプリケーション プロセスが開始されるたびにロードされ、その初期化部分が実行される必要があります。
CGI は、対応する URL が訪問されるたびにコードの新しいプロセスを開始し、その 1 回の訪問への応答が完了すると、そのプロセスは終了します。そのため、ユーザーの要求に対する応答が非常に遅くならないように、初期化作業をできる限り少なくする必要があります。
そのため、ホスティング プロバイダーが許可するのが CGI だけである場合は、起動/シャットダウンのオーバーヘッドを最小限に抑えるために、おそらく「生の CGI インターフェースまで」プログラムすることをお勧めします。
問題と可能性の概要については、Marek Kubica のハウツー「HOWTO Use Python in the web」を参照してください。WSGI (基盤となる Web サーバーに接続できる他の多くの方法の中でも特に)は CGI の上で実行できるため、理論的には、WSGI をサポートする Python Web フレームワーク (ほぼすべての最新のものを意味します) を使用できます。要点は、ただ学習して「遊んでいる」だけの場合を除き、実際に提供しているページで起動時のオーバーヘッドを何度も発生させたくありません。(学習して遊んでいるだけなら、自分専用のマシンで Web サーバーを実行できるので、ホスティング プロバイダーの制限は関係ありません;-)。
「ベア CGI」レベルでプログラミングすることに決めた場合は、このページから始めることができます。このページから役立つチュートリアルや、Python CGI スクリプトの有用で興味深い例の voidspace コレクションへのさまざまなリンクをたどってください。
利用可能な多くの Python Web アプリ フレームワークの一部を調査するには、ここから始めて 、対象となる各フレームワークの情報とリンクを確認してください。
最後に大事なことを言い忘れましたが、Google App Engine で Web アプリケーションを開発する可能性を無視してはなりません。Google App Engineには独自の特性と制限がありますが、非常に頻繁に使用する場合でも無料の WSGI 準拠の環境を提供します。優れたtipfyなど、App Engine を利用するために特別に開発された興味深い軽量フレームワークがあります(tipfy wiki のこのページは他のページにもリンクしています)。私は言いました -- 特に、その下にリレーショナル データベースはありません -- しかし、それにもかかわらず、依然として最も人気のある選択肢です)。
App Engine の初期の頃、App Engine を使用すると「ロックイン」する可能性があるのではないかと心配する人もいました。他のホスティング環境とは異なるため、App Engine 用に開発された Web アプリケーションを他の場所に移植したい場合に移植するのは難しいのではないでしょうか? 幸いなことに、appscaleやtyphoonaeなどのオープンソース ソフトウェアによって、そのような心配はなくなりました。
Django のような Web アプリケーション フレームワークは、独自のプロセスを生成し、Web サーバーからの要求を処理することで、CGI を置き換えます。また、テンプレート、部分テンプレート、ヘルパーなどを作成して html を簡素化するためのツールも提供します。
サーバーを完全に制御できない場合は、ホストがサーバーをインストールする必要があります。
Web アプリケーション フレームワークは、使用中の実際の HTTP サーバーから独立しています。サーバーは、それを使用して作成されたアプリケーションに要求を渡し、ギアを上げて応答を吐き出し、それが HTTP サーバーに送り返されます。
Django には、HTTP サーバーへの 3 つの一般的なコネクタ (WSGI、FastCGI、および mod_python) があります。これらはすべて説明されています... ここのどこかにあるので、簡単に発見できる情報については繰り返しません。
基本的に、フレームワークの機能は次のとおりです。
つまり、Django は Web アプリケーション フレームワークです。当然、上記の 3 つの条件をすべて満たします。
Python を使用した CGI プログラミングに興味がある場合は、Django を検討する必要はありません。
一方、Web 開発のオプションを探している場合、django は確かに良いオプションですが、手動の cgi プログラミングはそうではありません。