Python
 Computer >> コンピューター >  >> プログラミング >> Python

ラジオボタンのデータをPython CGIスクリプトに渡す方法を解説

ラジオボタンデータをPython CGIプログラムへ渡す方法

ラジオボタンは、複数の選択肢の中から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="Select Subject" />
</form>

このコードをブラウザで表示すると、次のようなフォームになります。

○ Maths ○ Physics [Select Subject]

ここでのポイントは、2つのラジオボタンが同じ name="subject" を持っている点です。同一のname属性を持つラジオボタンは同じグループとして扱われるため、ユーザーはどちらか一方しか選択できません。送信時には、選択されたボタンの value 属性の値(この例では "maths" または "physics")だけがサーバーへ送られます。

ラジオボタンの入力を処理するPython CGIスクリプト

続いて、ブラウザから送信されたラジオボタンの値を受け取り処理する 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メソッドで送られたフォームデータを読み込みます。
  • getvalue('subject') で、nameが "subject" の項目の値を取得します。何も選択されないまま送信された場合は "Not set" が代入されます。
  • HTTPヘッダーとHTMLを出力し、選択された科目を画面に表示します。

補足:Python 3で利用する際の注意点

上記のコードはPython 2の print 文の構文で書かれています。Python 3で実行する場合は print() 関数形式へ書き換える必要があります。さらに、標準ライブラリの cgi モジュールはPython 3.11で非推奨となり、Python 3.13で削除されています。そのため実務では、FlaskやDjangoなどのフレームワークを使ってフォームデータを扱うのが一般的です。とはいえ、CGIの仕組みはシンプルで、Webアプリケーションにおけるリクエストとレスポンスの基本を理解するうえで非常に良い教材といえます。

  1. Pythonでウィキペディアのデータを抽出する方法を徹底解説

    この記事では、Pythonを使ってウィキペディアのデータを抽出する方法を詳しく解説します。PythonはWebスクレイピングの分野で広く活用されており、Webサイトからメタ情報を収集するツールの開発に非常に適した言語です。 本記事では、Wikipedia APIとwikipediaライブラリを使用して、ウィキペディアのソースURLからデータを取得します。APIを利用することで、指定したURLから簡単にデータをフェッチでき、その後、対象のURLに対してメソッドを呼び出して、取得した情報を画面に出力することができます。 事前準備:wikipediaライブラリのインストール ウィキペディアからデータ

  2. Python(Matplotlib)でグラフに凡例を追加する方法を徹底解説

    はじめにグラフの最大の目的は、データをわかりやすく伝えることです。「百聞は一見に如かず」という言葉のとおり、言葉では表現しにくい複雑な情報も、一枚の図やグラフがあれば直感的に伝えることができます。しかし、多くの情報を含むグラフを描く場合は、どのデータがどの要素に対応しているのかを読み手が理解できるよう、凡例(legend)を添えると効果的です。準備:matplotlibのインストールとデータ作成matplotlibでは、凡例をさまざまな方法で表示できます。また、特定のポイントに注目させたい場合には注釈(annotation)も有効で、グラフ上の情報を読み手が理解する助けになります。まず、Pyt