CGIはPerlとかPHPが多いイメージだけど、そこをあえてPythonで覚えてみたい!ヾ(・ω・)ノ
そこで下記サイトを参考にさせてもらいながら、基本的なことをまとめてみる。
・Python CGIプログラミング入門
・Python 2.7ja1 documentation – 20.2. cgi — CGI (ゲートウェイインタフェース規格) のサポート
500エラーとか出る人は前回の記事 サーバーでPythonを使うときに注意すること をチェック
してみてください(・ω・)b
HTMLとして表示するときは print で最初にヘッダーを書きだして1行開けるのがお約束。
print "Content-Type: text/html" # 以降のデータが HTML であることを示す行 print # ヘッダ部の終了を示す空行
Pythonの中にHTMLコードを書くときは printステートメントをつける。
## こう書いても良いけど… print "<TITLE>CGI script output</TITLE>" print "<H1>This is my first CGI script</H1>" print "Hello, world!" ## 僕はこう書く方が楽で好き print """ <TITLE>CGI script output</TITLE> <H1>This is my first CGI script</H1> Hello, world! """
cgiモジュールをインポートする前に、デバッグ用のおまじないを書いておこう。
エラーが発生した際にブラウザ上に詳細なレポートを出力してくれるぞー。
import cgitb cgitb.enable()
入力されたフォームデータを取得するには、 FieldStorage クラスを使うのがBEST!(゚∇^d) グッ!!
値を取得するには FieldStorage クラスの getfirst メソッドを使う。
import cgi fs = cgi.FieldStrage() txt = fs.getfirst('text', '') print """ <article> <h2>テキストフィールドに入力された文字を表示</h2> <p>入力された文字は、<strong>%s</strong> です。</p> <form action="cgi_fieldstorage_txtfld.cgi" method="post"> <input type="text" name="text" /> <input type="submit" /> </form> </article> """ % cgi.escape(txt) ## 特殊文字がある場合はHTML上で表示できるようにする
上記のコードのDEMO