ここでは、テキスト入力以外から入力されたデータの扱い方について説明します。 なお、データを受け取る場合の注意点は、Perlで書いたものと同じです。
最初に、リンクによってデータを送る方法を説明します。 まず、CGIを呼び出すページのHTMLで、次のようにリンクにデータを書きます。
<A HREF="ex2.cgi?Hello">CGIの例2</A>
これで「ex2.cgi」という名前のCGIファイルに「Hello」というデータが送られます。
基本は「CGIファイル名?データ」と、? の後にデータを加えた形になります。
注意:正確には、リンクに書ける文字には制限があるので、例えば、
空白や記号が入った文や、日本語をそのまま送ることはできません。
そして、データを受け取るCGIプログラムは次のようになります。
1: #! /usr/bin/python 2: 3: import os 4: 5: Data = os.environ['QUERY_STRING'] 6: 7: print "Content-type: text/html\n\n" 8: print Data
ブラウザから送られるデータは、「QUERY_STRING」という「環境変数」に入ってます。
Pythonで環境変数の値を得るには、
「os」ライブラリの「environ」メソッドによって、すべての環境変数の配列が得られます。
つまり「os.environ」が変数の配列、
正確には連想配列(Pythonでは「辞書」と呼ばれます)と考えていいわけです。
この「辞書」で、「QUERY_STRING」というキーに対する値を読む、ということになります。
ややこしくなりましたが、「os.environ['QUERY_STRING']」が、
「環境変数の QUERY_STRING の値」ということです。
あとは、それを表示しているだけです。
注意:この例では、データをそのまま表示してますが、こういうのは危険で全く悪い例です。
しかし、Python では、CGIのライブラリが標準で入っているので、この方法は普通は使わないと思います。 次にライブラリをつかって、フォームから入力されたデータを受け取る方法を説明します。