PythonでラジオボタンのデータをCGIプログラムに渡す方法
ラジオボタンは、複数の選択肢の中から1つだけを選択させたい場合に使われるフォーム部品です。同じname属性を持つラジオボタンは1つのグループとして扱われ、その中で選択できるのは常に1項目のみという特徴があります。複数選択が可能なチェックボックスとの大きな違いはこの点です。
HTMLフォームの記述例
まず、2つのラジオボタンを含むフォームのHTMLコード例を見てみましょう。
<form action = "/cgi-bin/radiobutton.py" method = "post" target = "_blank"> <input type = "radio" name = "subject" value = "maths" /> Maths(数学) <input type = "radio" name = "subject" value = "physics" /> Physics(物理) <input type = "submit" value = "科目を選択" /> </form>
このコードをブラウザで表示すると、次のようなフォームが描画されます。

ラジオボタンのデータを処理するPythonスクリプト
続いて、ブラウザから送信されたラジオボタンの入力値を受け取り、処理するradiobutton.pyスクリプトを示します。
#!/usr/bin/python
# CGI処理用のモジュールをインポート
import cgi, cgitb
# FieldStorageのインスタンスを生成
form = cgi.FieldStorage()
# フォームフィールドからデータを取得
if form.getvalue('subject'):
subject = form.getvalue('subject')
else:
subject = "Not set"
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Radio - Fourth CGI Program</title>"
print "</head>"
print "<body>"
print "<h2> Selected Subject is %s</h2>" % subject
print "</body>"
print "</html>"
スクリプトのポイント
- cgi.FieldStorage():POSTまたはGETで送信されたフォームデータを格納するオブジェクトを生成します。
- getvalue('subject'):ラジオボタンは同じname属性を共有しているため、選択されていれば単一の文字列(value属性の値)が返されます。チェックボックスのようにリストにはならない点に注意してください。
- 未選択時の処理:何も選択されずに送信された場合はgetvalue()がNoneを返すため、if文で存在を確認し、「Not set」という文字列を代わりに表示しています。
なお、上記のコードはPython 2系のprint文を使用した書き方です。Python 3環境で実行する場合はprint()関数形式に書き換える必要があるので注意してください。
-
Pythonによるデータ分析と可視化入門!pandas・matplotlibの使い方を解説
このチュートリアルでは、Pythonのpandasやmatplotlibなどのモジュールを使ったデータ分析と可視化の方法を学びます。Pythonはデータ分析に非常によく適した言語です。まずは以下のコマンドでpandasとmatplotlibをインストールしましょう。 pip install pandas pip install matplotlib インストールが完了すると成功メッセージが表示されます。まずpandasについて学び、その後でmatplotlibを見ていきましょう。 pandasとは pandasはPythonのオープンソースライブラリで、データ分析のための豊富なツールを提供し
-
Pythonによる巡回冗長検査(CRC)の実装方法とサンプルコード
巡回冗長検査(CRC)とは 巡回冗長検査(CRC:Cyclic Redundancy Check)は、デジタルデータ内の誤りを検出するために広く利用されている手法で、伝送エラーの検出に特に有効な技術として知られています。この手法の計算の中核を担っているのは「2進数の除算(バイナリ除算)」です。 CRCでは、一連の冗長ビットからなる「CRCビット(検査用ビット)」を使用します。これらのビットはデータ単位(データワード)の末尾に付加され、付加後のデータ単位全体が、あらかじめ決められた特定の2進数(除数)でちょうど割り切れるように構成されます。 受信側での誤り判定の流れ 受信側では、受信したデータ