Python
 Computer >> コンピューター >  >> プログラミング >> Python

テキストエリアのデータを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フレームワークを利用してフォームデータを処理するのが一般的です。

  1. Pythonでウィキペディアのデータを抽出する方法を徹底解説

    この記事では、Pythonを使ってウィキペディアのデータを抽出する方法を詳しく解説します。PythonはWebスクレイピングの分野で広く活用されており、Webサイトからメタ情報を収集するツールの開発に非常に適した言語です。 本記事では、Wikipedia APIとwikipediaライブラリを使用して、ウィキペディアのソースURLからデータを取得します。APIを利用することで、指定したURLから簡単にデータをフェッチでき、その後、対象のURLに対してメソッドを呼び出して、取得した情報を画面に出力することができます。 事前準備:wikipediaライブラリのインストール ウィキペディアからデータ

  2. Pythonでテキストエリア(TEXTAREA)のデータをCGIプログラムに渡す方法

    複数行のテキストデータをCGIプログラムに送信したい場合には、HTMLのTEXTAREA要素を使用します。TEXTAREAは、ユーザーが自由に複数行の文章を入力できる入力欄を提供し、その内容は通常のテキストフィールドと同じようにCGIプログラムへ渡されます。 TEXTAREAを使ったフォームのHTMLコード例 以下は、TEXTAREAボックスを含むフォームのHTMLコード例です。 <form action = "/cgi-bin/textarea.py" method = "post" target = "_blank">