HTMLフォームの押されたボタンを取得し表示します。
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
どのボタンが押されたか取得する
'''
html = '''Content-Type: text/html
<html>
<head>
<title>どのボタンが押されたか取得する</title>
</head>
<body>
<h1>どのボタンが押されたか調べる</h1>
<p>押されたボタンは、「%s」です。</p>
<form action="test06.cgi" method="post">
<input type="submit" name="btn1" value="[1]" />
<input type="submit" name="btn2" value="[2]" />
<input type="submit" name="btn3" value="[3]" />
</form>
</body>
</html>
'''
import cgi
f = cgi.FieldStorage()
if f.getfirst('btn1'):
btn = '1'
elif f.getfirst('btn2'):
btn = '2'
elif f.getfirst('btn3'):
btn = '3'
else:
btn = ''
print html % btn
import cgi
f = cgi.FieldStorage()
HTMLフォームから送信された値は、cgi モジュールの FieldStorage クラスを使用して取得します。
押されるボタンは1つなので、FieldStorageクラスの getfirst() を使用します。
if f.getfirst('btn1'):
btn = '1'
ボタンが押されていれば、ボタンの name 属性に対して value 属性の値が設定されます。
ボタンの name 属性に値が設定されているか調べます。
btn1 のボタンが押されていれば、if f.getfirst('btn1') は True になるので、変数 btn に 1 を代入します。
btn1 のボタンが押されていなければ btn2 のボタンが押されたか調べます。
btn2 のボタンも押されていなければ btn3 のボタンを調べます。
print html % btn
変数 btn には押されたボタンの名前が設定されています。 ボタンが押されていないときは '' になります。
文字列フォーマットの %s を 変数 btn と置き換えて出力します。