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

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

複数行のテキストデータをCGIプログラムに送信したい場合には、HTMLのTEXTAREA要素を使用します。TEXTAREAは、ユーザーが自由に複数行の文章を入力できる入力欄を提供し、その内容は通常のテキストフィールドと同じようにCGIプログラムへ渡されます。

TEXTAREAを使ったフォームのHTMLコード例

以下は、TEXTAREAボックスを含むフォームの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>

このコードをブラウザで表示すると、次のようなフォームが生成されます。

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

コードのポイント

  • action属性:送信先のCGIプログラム(/cgi-bin/textarea.py)を指定します。
  • method属性:データの送信方式として「post」を指定しています。
  • name属性:「textcontent」という名前でテキストエリアの内容がCGI側に渡されます。
  • cols / rows属性:テキストエリアの幅(列数)と高さ(行数)を指定します。

ブラウザからの入力を処理するCGIスクリプト

続いて、Webブラウザから送信されたテキストエリアのデータを受け取り、処理する「textarea.cgi」スクリプトの例を示します。

#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
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モジュールをインポートし、CGI処理とデバッグの準備を行います。
  • cgi.FieldStorage()でフォームデータにアクセスするためのインスタンスを作成します。
  • getvalue('textcontent')でテキストエリアの値を取得します。未入力の場合は「Not entered」が代入されます。
  • 最後にHTTPヘッダーとHTMLを出力し、入力されたテキストを画面に表示します。

補足:Python 3で利用する際の注意点

上記のコードはPython 2の構文(print文)で書かれています。Python 3で動作させる場合は、print(...)という関数形式に書き換える必要があります。また、標準ライブラリのcgiモジュールはすでに非推奨となり、Python 3.13で削除されているため、新規開発ではFlaskやDjangoなどのWebフレームワークの利用が推奨されます。

  1. Pythonでポリゴンの面積を求める方法:靴ひも公式を使った実装

    はじめに2次元平面上に、単純な多角形(ポリゴン)の頂点を時計回りまたは反時計回りの順に並べた座標リストが与えられたとします。このとき、その多角形の面積を計算するのが本記事の目的です。例えば、入力が points = [(0, 0), (0, 5), (3, 5), (3, 0)] のような場合、これは幅3・高さ5の長方形を表しているため、出力は 15.0 となります。解法の考え方:靴ひも公式(Shoelace Formula)この問題は、有名な靴ひも公式(測量士の公式)を使うことで効率的に解けます。隣り合う2頂点ごとに外積 x1*y2 - y1*x2 を計算し、それらをすべて足し合わせて絶対値

  2. Pythonによる巡回冗長検査(CRC)の実装方法とサンプルコード

    巡回冗長検査(CRC)とは 巡回冗長検査(CRC:Cyclic Redundancy Check)は、デジタルデータ内の誤りを検出するために広く利用されている手法で、伝送エラーの検出に特に有効な技術として知られています。この手法の計算の中核を担っているのは「2進数の除算(バイナリ除算)」です。 CRCでは、一連の冗長ビットからなる「CRCビット(検査用ビット)」を使用します。これらのビットはデータ単位(データワード)の末尾に付加され、付加後のデータ単位全体が、あらかじめ決められた特定の2進数(除数)でちょうど割り切れるように構成されます。 受信側での誤り判定の流れ 受信側では、受信したデータ