Top / Programming / Python / Python CGIプログラミング入門 / 足し算を行う

足し算を行う

入力された2つの数を加算し、結果を出力します。

test13.cgi

#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
足し算を行う
'''
html = '''Content-Type: text/html

<html>
<head>
  <title>足し算を行うCGIスクリプト</title>
</head>
<body>
<h1>足し算を行うCGIスクリプト</h1>
<form action="test13.cgi" method="get">
  <input type="text" name="num1" size="3" value="%s" />
  +
  <input type="text" name="num2" size="3" value="%s" />
  = %d 
  <input type="submit" />
</form>
</body>
</html>
'''

import cgi
f = cgi.FieldStorage()
num1 = f.getfirst("num1", "0")
num2 = f.getfirst("num2", "0")
try:
    result = int(num1) + int(num2)
except:
    result = 0
print html % (num1, num2, result)

解説

import cgi
f = cgi.FieldStorage()

HTMLフォームから送信された値は、cgiモジュールのFieldStorageクラスを使用して取得します。

テキスト入力フィールドに入力された文字を取得するには、FieldStorageクラスの getfirst() を使用します。

num1 = f.getfirst("num1", "0")
num2 = f.getfirst("num2", "0")

テキスト入力フィールド num1 と num2 に入力された値を取得します。

try:
    result = int(num1) + int(num2)
except:
    result = 0

入力された値は文字列として取得されます。 int() で数値に変換してから加算します。

入力された値が数字以外の時は例外が発生します。

そのときは、result の値を0にします。

print html % (num1, num2, result)

文字列フォーマットを各変数の値に変換して、出力します。

関連URL

更新履歴