完整本地CGI服务器

0 投票
2 回答
517 浏览
提问于 2025-04-17 09:02

我想搭建一个本地的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

撰写回答