PythonでCGIサーバが動けばサクっと実行するだけでWebサービスのデモが出来て良いかも!
と思って調べてみた
- CGIHTTPServer できみにも書ける Web サーバ
しかし、この方法でCGIのテストをやろうとするといくつか問題があった。
POSTにしているのはGETだとAJAXした時にIEがキャッシュするからです。
まぁどちらの問題もCGIやJavaScriptを書き換えれば直るんですが、なんかうれしくない。
PythonのWebサーバを書き換えてこの問題を解決しよう ということでやってみました
import os, BaseHTTPServer, CGIHTTPServer,SimpleHTTPServer class PyHTTPRequestHandler(CGIHTTPServer. CGIHTTPRequestHandler): def do_POST(self): if self.is_cgi(): CGIHTTPServer.CGIHTTPRequestHandler.do_POST(self) else: #やっぱりGETってことでw self.do_GET(); def is_python(self,path): #cgiってあったらpythonだと思いな! head,tail=os.path.splitext(path) return tail.lower() in (".py", ".pyw",".cgi") #warning! CGIHTTPServer.CGIHTTPRequestHandler.cgi_directories = ['/cgi-bin'] BaseHTTPServer.HTTPServer( ('127.0.0.1', 8000), PyHTTPRequestHandler ).serve_forever()
やってることはただのオーバーライドなので知ってしまえばなんとも無いです。