python-cgi どのボタンが押されたのかを知る

Python活用

2つ以上のボタンを持つ呼び出し側のページのどのボタンが押されたのかを判断する方法を説明します。

呼び出し側の記述

ボタンは<button・・・>で記述します。

<button name="button" value="kon">こんにちは</button>
<button name="button" value="seka">世界</button>

すべてのボタンの name を同じ値(button)にすることがポイントです。

ボタンは一度に1個しか押せないので、valueの値でどのボタンが押されたのか区別できます。

全体のHTMLはこちらのページに記載しています。

cgi側の記述

ボタンの値の取得

form = cgi.FieldStorage()
button = form.getvalue(‘button’, ”) #ボタンの値

ボタンの区別

ボタンが2つしかないなら if else で十分です。

if button == "kon":  
    aisatsu="こんにちは"            
    sekai = "World"
else:                   
    aisatsu="Hello"
    sekai = "世界"

ボタンが3つ以上あるときは if elif・・・ を使います。

if button == "kon":  
    aisatsu="こんにちは"            
    sekai = "World"
elif button == "seka":                  
    aisatsu="Hello"
    sekai = "世界"
elif button == "gdgd":                  
    aisatsu="Hel"
    sekai = "地獄"

Pythonのバージョン3.10以降では他の言語でおなじみの case が使えるようになりましたが、さくらのレンタルサーバーでは2024年現在、3.8までしか使えないのでしばらくは if elif・・・ を使い続けることになります。

cgiの全体コードはこちらのページに記載しています。

タイトルとURLをコピーしました