完整本地CGI服务器
我想搭建一个本地的CGI服务器,让它把任何*.py
文件都当作cgi脚本来执行。但是使用CGIHTTPServer.CGIHTTPRequestHandler
时,它只会执行在cgi_directories
属性里指定的文件。
我该如何让任何Python脚本都能被当作cgi脚本执行呢?
2 个回答
0
根据文档,我觉得你可能在找这个:
cgi_directories
这个默认值是 ['/cgi-bin', '/htbin'],它描述了哪些文件夹被当作包含CGI脚本的地方。
所以,如果你把 cgi_directories
设置成你需要的任何值,就可以在一个不符合之前这些名字的文件夹中使用脚本了。
另外,我觉得你也可以在其中一个预期的文件夹里加一个指向脚本的链接,这样就能访问到那个脚本了。
1
请自行尝试替换 CGIHTTPServer.CGIHTTPRequestHandler.is_cgi
这个函数,但要注意风险:
import CGIHTTPServer
def is_cgi(self):
if self.path.endswith('.py'):
self.cgi_info = CGIHTTPServer._url_collapse_path_split(self.path)
return True
return False
CGIHTTPServer.CGIHTTPRequestHandler.is_cgi = is_cgi