在没有CGI模块的情况下使用Python作为CGI脚本?

在没有CGI模块的情况下使用Python作为CGI脚本?,python,cgi,Python,Cgi,是否可以在不使用CGI模块的情况下将Python用作CGI,并且仍然可以访问所有浏览器信息和所有内容 我试过: #!/usr/bin/python import sys print "Content-type: text/html" print data = sys.stdin.readlines() print len(data) 但它总是打印0。这确实是可能的,但许多信息是作为环境变量传入的,而不是标准输入。事实上,在标准输入中传递的唯一内容是传入请求的主体,只有在发布表单时才会有内容 有

是否可以在不使用CGI模块的情况下将Python用作CGI,并且仍然可以访问所有浏览器信息和所有内容

我试过:

#!/usr/bin/python
import sys
print "Content-type: text/html"
print
data = sys.stdin.readlines()
print len(data)

但它总是打印0。

这确实是可能的,但许多信息是作为环境变量传入的,而不是标准输入。事实上,在标准输入中传递的唯一内容是传入请求的主体,只有在发布表单时才会有内容


有关如何使用CGI的更多信息,请访问网站,如。(在这里用答案解释整个标准太多了)

当然
cgi
是一个没有魔力的实用模块;通过读取和处理环境变量(特别是
QUERY\u STRING
)和
stdin
,它没有做任何您自己做不到的事情,这对
POST
表单主体起作用。(但请记住读取
CONTENT\u LENGTH
环境变量,并且只读取那么多字节,而不是使用
readlines()
,否则您可以让脚本挂起,等待永远不会出现的更多输入。)

事实上,对于表单提交处理,除了
cgi
,还有完整的替代方案,可以作为独立模块或框架的一部分


cgi
module或no,但是,今天我不会编写一个纯粹基于cgi的webapp。更好的方法是编写接口,并使用
wsgiref.handlers.CGIHandler
在CGI上部署WSGI应用程序。然后,您可以在需要时轻松地迁移到更高效的web服务器界面。如果您愿意,您可以使用WSGI应用程序中的
cgi
模块来阅读表单提交,或者也可以自己做事情。

不幸的是,hoohoo.ncsa,cgi 1.1规范的前一个标准主页,最近被关闭了。相同的信息以可读性较差的格式在中提供