Top / Programming / Python / Python CGIプログラミング入門 / 複数行の入力フィールドに入力された文字を取得する

複数行の入力フィールドに入力された文字を取得する

HTMLフォームの複数行の入力フィールドに入力された文字を取得し表示します。

test10.cgi

#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
複数行の入力フィールドに入力された文字を取得する
'''
html = '''Content-Type: text/html

<html>
<head>
  <title>複数行の入力フィールドに入力された文字を取得する</title>
</head>
<body>
<h1>複数行の入力フィールドに入力された文字を取得する</h1>
<p>入力された文字は、<br />
<pre>%s</pre>
です。</p>
<form action="test10.cgi" method="post">
  <textarea name="textarea"></textarea>
  <input type="submit" />
</form>
</body>
</html>
'''

import cgi
f = cgi.FieldStorage()
txt = f.getfirst('textarea', '')
print html % cgi.escape(txt)

解説

import cgi
f = cgi.FieldStorage()

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

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

テキスト入力フィールドに入力された文字は、テキスト入力フィールドの name 属性に設定されます。

txt = f.getfirst('textarea', '')

getfirst()で textarea の値を取得し、変数 txt に代入します。

print html % cgi.escape(txt)

入力された文字のうち、"&"、 "<"、">" はそのままでは表示できません。

cgiモジュールの escape() を使い、HTMLで正しく表示できる文字に変換してから、文字列フォーマットの %s と置き換えて出力します。

関連URL

更新履歴