読者です 読者をやめる 読者になる 読者になる

或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

PythonでCGIの環境変数一覧を表示する

Python

CGIプログラミングに関して本格的でしっかりした書籍というと、以下が良さげなので、和書のほうを購入してみた。

CGIプログラミング

CGIプログラミング

  • 作者: スコットグーリッジ,ガンザーバージニックス,シシャガンダヴァラム,Scott Guelich,Gunther Birznieks,Shishir Gundavaram,田辺茂也,大川佳織
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2001/06
  • メディア: 単行本
  • 購入: 2人 クリック: 69回
  • この商品を含むブログ (42件) を見る
CGI Programming with Perl

CGI Programming with Perl

CGIは、主流の言語ということでPerlで書かれている。Perl≒CGIなんだいうようなニュアンスのことが書籍に書いてあった。2001年刊と、本当に古い書籍だが、Perl自体の書き方には古さというものはまったく見られなかった。HTMLはだいぶ古いなと思ったけど。

Perlで書かれているところをPythonで書くとどうなるの?とチャレンジ精神が湧いてきて、書き直しを試みようとしている。

まず、環境変数の一覧を表示するCGIを書きなおしてみようとした。が、Pythonの場合、それ用のクラスがあって簡単なメソッドをコールしてやればよいことがわかったので、深追いしないことにした。

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
#すべての環境変数を一覧表示する

import cgi

print "Content-type: text/html"
cgi.print_environ()

↑これだけで済んだ。これを実行したところ、以下のように出力された。

ちなみに、サーバーはlolipopのレンタルサーバーを使っている。

Shell Environment:

DOCUMENT_ROOT
    /home/users/1/hippy.jp-oneshotlife/web/oneshotlife 
GATEWAY_INTERFACE
    CGI/1.1 
HTTP_ACCEPT
    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
HTTP_ACCEPT_ENCODING
    gzip, deflate 
HTTP_ACCEPT_LANGUAGE
    ja,en-us;q=0.7,en;q=0.3 
HTTP_CACHE_CONTROL
    max-age=0 
HTTP_CONNECTION
    Keep-Alive 
HTTP_COOKIE
    commenter_id=1%3A%2C%272%27; mt_commenter=9qivMUY1hiHcYBdbGlb0iDMM6mKVgZpoPCeFjyxj; commenter_name=oneshotlife_tom 
HTTP_HOST
    oneshotlife.org 
HTTP_USER_AGENT
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 
HTTP_X_FORWARDED_FOR
    126.16.14.202 
HTTP_X_FORWARDED_HOST
    oneshotlife.org 
HTTP_X_FORWARDED_SERVER
    web-proxy.lolipop.jp 
PATH
    /usr/local/bin:/usr/bin:/bin 
QUERY_STRING
REMOTE_ADDR
    126.16.14.202 
REMOTE_PORT
    46998 
REQUEST_METHOD
    GET 
REQUEST_URI
    /apps/env.py 
SCRIPT_FILENAME
    /home/users/1/hippy.jp-oneshotlife/web/oneshotlife/apps/env.py 
SCRIPT_NAME
    /apps/env.py 
SERVER_ADDR
    172.17.0.64 
SERVER_ADMIN
    admin@paperboy.co.jp 
SERVER_NAME
    oneshotlife.org 
SERVER_PORT
    80 
SERVER_PROTOCOL
    HTTP/1.1 
SERVER_SIGNATURE
SERVER_SOFTWARE
    Apache 
UNIQUE_ID
    kGnFqdKskEAAADEhvbAAAAOW