テキストエリアのデータをPython CGIスクリプトに渡す方法
テキストエリアのデータをCGIプログラムに渡す方法
複数行にわたるテキストをCGIプログラムへ送信したい場合は、HTMLの<textarea>要素を使用します。テキストエリアは、お問い合わせフォームやコメント欄など、ユーザーが自由に長文を入力できる場面で広く利用されています。
テキストエリア付きフォームのHTMLコード例
以下は、テキストエリアを含むフォームのHTMLコード例です。
<form action="/cgi-bin/textarea.py" method="post" target="_blank">
<textarea name="textcontent" cols="40" rows="4">
Type your text here...
</textarea>
<input type="submit" value="Submit" />
</form>
このコードを実行すると、ブラウザには次のようなフォームが表示されます。
Type your text here... [Submit]
テキストエリアのデータを受け取るPython CGIスクリプト
続いて、Webブラウザから送信されたデータを処理するためのPython CGIスクリプト(textarea.py)の例を紹介します。
#!/usr/bin/python
# CGI処理用モジュールをインポート
import cgi, cgitb
# FieldStorageインスタンスを作成
form = cgi.FieldStorage()
# フィールドからデータを取得
if form.getvalue('textcontent'):
text_content = form.getvalue('textcontent')
else:
text_content = "Not entered"
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Text Area - Fifth CGI Program</title>"
print "</head>"
print "<body>"
print "<h2> Entered Text Content is %s</h2>" % text_content
print "</body>"
スクリプトのポイント解説
- モジュールのインポート:
cgiモジュールはフォームデータの解析に使用し、cgitbモジュールはエラー発生時のデバッグ情報表示に役立ちます。 - FieldStorageオブジェクトの生成:
form = cgi.FieldStorage()によって、送信されたフォームデータへのアクセスが可能になります。 - 値の取得:
getvalue()メソッドを使い、「textcontent」という名前のフィールドから入力内容を取得します。未入力の場合は「Not entered」が代入されます。 - 結果の出力: Content-typeヘッダーを出力した後、ユーザーが入力したテキストを含むHTMLページをブラウザへ返します。
注意点:Python 3以降での扱い
上記のコードはPython 2向けに書かれているため、そのままPython 3では動作しません。Python 3ではprint関数を使用する必要があります。また、cgiモジュールはPython 3.11で非推奨となり、3.13で標準ライブラリから削除されました。現在の開発では、FlaskやDjangoなどのWebフレームワークを利用してフォームデータを処理するのが一般的です。
-
Pythonでウィキペディアのデータを抽出する方法を徹底解説
この記事では、Pythonを使ってウィキペディアのデータを抽出する方法を詳しく解説します。PythonはWebスクレイピングの分野で広く活用されており、Webサイトからメタ情報を収集するツールの開発に非常に適した言語です。 本記事では、Wikipedia APIとwikipediaライブラリを使用して、ウィキペディアのソースURLからデータを取得します。APIを利用することで、指定したURLから簡単にデータをフェッチでき、その後、対象のURLに対してメソッドを呼び出して、取得した情報を画面に出力することができます。 事前準備:wikipediaライブラリのインストール ウィキペディアからデータ
-
Pythonでテキストエリア(TEXTAREA)のデータをCGIプログラムに渡す方法
複数行のテキストデータをCGIプログラムに送信したい場合には、HTMLのTEXTAREA要素を使用します。TEXTAREAは、ユーザーが自由に複数行の文章を入力できる入力欄を提供し、その内容は通常のテキストフィールドと同じようにCGIプログラムへ渡されます。 TEXTAREAを使ったフォームのHTMLコード例 以下は、TEXTAREAボックスを含むフォームのHTMLコード例です。 <form action = "/cgi-bin/textarea.py" method = "post" target = "_blank">