PythonでCGIスクリプトを書く方法について解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。
なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
PythonでCGIスクリプトを書く方法について詳しく説明していくね!
お願いします!
CGI(Common Gateway Interface)とは
CGIとは、ブラウザの要求に応じ、Webサーバがプログラムや計算を実行する仕組みです。
単純なHTMLで作成したWebページは静的です(誰がいつどのようにアクセスしても同じ内容になる)。
一方、ユーザの操作やアクセス方法に応じ、Webページの内容を動的に変化させたい場合には、CGIを用います。
PythonでCGIスクリプトを書く方法
PythonでCGIスクリプトを書くには、cgiモジュールが便利です。
CGIスクリプトの簡単な動作確認には、http.serverモジュールが便利です。
以下のようにcgiモジュールをインポートします。
import cgi
CGIスクリプト先頭に以下を挿入するとデバッグに便利です。
これにより、CGIスクリプト中でエラーが発生した際に、ブラウザ上に詳細なレポートが出力され、デバッグが容易になります。
import cgitb cgitb.enable()
フォームで入力された値を処理するには、FieldStorageクラスを用います。
form = cgi.FieldStorage()
実際に書いてみよう
サンプルコード
index.html
以下内容のindex.htmlファイルを作成します。
テキスト入力フォーム2つ、送信ボタン1つのWebページです。
POSTメソッドで後述のsample.pyのCGIにアクセスします。
<html> <body> <form action="/cgi-bin/sample.py" method="POST"> <input type="text" name="foo"> <input type="text" name="bar"> <input type="submit"> </form> </body> </html> cgi-bin/sample.py
以下内容のsample.pyファイルを作成し、cgi-binディレクトリに配置します。
import cgi import cgitb cgitb.enable() print("Content-Type: text/html") print() form = cgi.FieldStorage() for key in form: value = form[key].value print('<p>%s: %s</p>' % (key, value))
実行結果
以下のコマンドでWebサーバを起動します。
python -m http.server --cgi 8000
Webブラウザで http://localhost:8000 にアクセスし、フォームに入力します。
送信ボタンをクリックすると、以下のようにCGIスクリプトが実行されました。
監修してくれたメンター
橋本紘希
システムインテグレータ企業勤務のシステムエンジニア。 開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。
初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。
また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。
情報提供元:TechAcademyマガジン
記事名:「PythonでCGIスクリプトを書く方法【初心者向け】」