pythonでお手軽CGIサーバ

ずっとメモし忘れたので追加

Pythonでは数行でWebとかcgiサーバをたてることができたりするんですが、いつでも使えるようにメモ

  • 一番単純にWeb(CGI)サーバをたてる場合
import CGIHTTPServer
CGIHTTPServer.test()

スクリプトが置かれている位置がドキュメントルートになって、同階層のcgi-binディレクトリがcgi実行ディレクトリになるらしい。接続はlocalhostの8080ポート

  • 少し詳細に設定する場合の例(普段俺さんが使っている例→適当かも。。。)
import os, BaseHTTPServer, CGIHTTPServer,SimpleHTTPServer

class PyHTTPRequestHandler(CGIHTTPServer.
  CGIHTTPRequestHandler):
    def do_POST(self):
        if self.is_cgi():
            CGIHTTPServer.CGIHTTPRequestHandler.do_POST(self)
        else:
            self.do_GET();
    def is_python(self,path):
        head,tail=os.path.splitext(path)
        return tail.lower() in (".py", ".pyw",".cgi")

BaseHTTPServer.HTTPServer(
    ('127.0.0.1', 80),
    PyHTTPRequestHandler
    ).serve_forever()

cgiディレクトリやポート番号とかも指定できる、上記例では80番ポートで接続。


もっと詳しく設定できるらしいので、もう少し情報を漁ってみます。


ちょっとした検証をするのに便利なので重宝しています。