ドロップダウンボックスのデータをPython CGIスクリプトへ渡す方法
ドロップダウンボックスのデータをCGIプログラムに渡す方法
ドロップダウンボックスは、多くの選択肢がある中から、そのうちの1つだけを選択させたい場合に使用されるフォーム要素です。
以下は、ドロップダウンボックスを1つ含むフォームのHTMLコード例です。
<form action="/cgi-bin/dropdown.py" method="post" target="_blank">
<select name="dropdown">
<option value="Maths" selected>Maths</option>
<option value="Physics">Physics</option>
</select>
<input type="submit" value="Submit"/>
</form>このコードをブラウザで表示すると、「Maths」と「Physics」の2つの選択肢を持つドロップダウンリストと送信ボタンからなるフォームが生成されます。
続いて、Webブラウザから送信された入力データを処理するための「dropdown.py」スクリプトを紹介します。
#!/usr/bin/python
# CGI処理のためのモジュールをインポート
import cgi, cgitb
# FieldStorageのインスタンスを作成
form = cgi.FieldStorage()
# フォームフィールドからデータを取得
if form.getvalue('dropdown'):
subject = form.getvalue('dropdown')
else:
subject = "Not entered"
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Dropdown Box - Sixth CGI Program</title>"
print "</head>"
print "<body>"
print "<h2> Selected Subject is %s</h2>" % subject
print "</body>"
print "</html>"スクリプトの動作ポイント
cgi.FieldStorage():送信されたフォームデータにアクセスするためのインスタンスを作成します。
getvalue('dropdown'):「dropdown」という名前のフィールドの値を取得します。値が未選択・未送信の場合は「Not entered」という文字列が代わりに設定されます。
Content-typeヘッダー:出力内容がHTMLであることをブラウザに伝えるため、必ず最初に出力する必要があります。
注意点
上記のコードはPython 2形式のprint文で記述されています。Python 3環境で実行する場合は、print()関数形式(例:print("Content-type:text/html\r\n\r\n"))に書き換える必要があります。さらに、cgiモジュールはPython 3.13で標準ライブラリから削除されているため、現在の開発ではFlaskやDjangoなどのWebフレームワークの利用が推奨されています。
-
Pythonでウィキペディアのデータを抽出する方法を徹底解説
この記事では、Pythonを使ってウィキペディアのデータを抽出する方法を詳しく解説します。PythonはWebスクレイピングの分野で広く活用されており、Webサイトからメタ情報を収集するツールの開発に非常に適した言語です。 本記事では、Wikipedia APIとwikipediaライブラリを使用して、ウィキペディアのソースURLからデータを取得します。APIを利用することで、指定したURLから簡単にデータをフェッチでき、その後、対象のURLに対してメソッドを呼び出して、取得した情報を画面に出力することができます。 事前準備:wikipediaライブラリのインストール ウィキペディアからデータ
-
Pythonでテキストエリア(TEXTAREA)のデータをCGIプログラムに渡す方法
複数行のテキストデータをCGIプログラムに送信したい場合には、HTMLのTEXTAREA要素を使用します。TEXTAREAは、ユーザーが自由に複数行の文章を入力できる入力欄を提供し、その内容は通常のテキストフィールドと同じようにCGIプログラムへ渡されます。 TEXTAREAを使ったフォームのHTMLコード例 以下は、TEXTAREAボックスを含むフォームのHTMLコード例です。 <form action = "/cgi-bin/textarea.py" method = "post" target = "_blank">