是否有可能在不使用CGI模塊的情況下將Python用作CGI,仍然可以訪問所有瀏覽器信息和所有內容?使用Python作爲沒有CGI模塊的CGI腳本?
我想:
#!/usr/bin/python
import sys
print "Content-type: text/html"
print
data = sys.stdin.readlines()
print len(data)
,但它始終打印0.1
是否有可能在不使用CGI模塊的情況下將Python用作CGI,仍然可以訪問所有瀏覽器信息和所有內容?使用Python作爲沒有CGI模塊的CGI腳本?
我想:
#!/usr/bin/python
import sys
print "Content-type: text/html"
print
data = sys.stdin.readlines()
print len(data)
,但它始終打印0.1
這的確是可能的,但有很多的信息傳遞中的環境變量,而不是標準輸入。實際上,標準輸入中唯一傳入的是傳入請求的主體,如果表單正在被POST,則該請求僅包含內容。
有關如何使用CGI的更多信息,請檢查網站,如http://www.w3.org/CGI/。 (在這裏解釋整個標準太複雜了)
當然。 cgi
是一個沒有魔力的實用程序模塊;它通過閱讀和處理環境變量(特別是QUERY_STRING
)和stdin
來完成自己無法做到的任何事情,這些變量進入POST
表單實體。 (但請務必閱讀CONTENT_LENGTH
環境變量和只讀很多字節,而不是使用readlines()
,否則你可以使你的腳本掛等待更多的輸入,將永遠不會到來。)
事實上,有以cgi
完全替代品用於表單提交處理,既可以作爲獨立模塊,也可以作爲框架的一部分。
cgi
模塊或否,但是,我今天不寫一個純粹的基於CGI的web應用程序。更好地寫入WSGI接口,並使用wsgiref.handlers.CGIHandler
通過CGI部署該WSGI應用程序。然後,您可以根據需要輕鬆遷移到更高效的Web服務器界面。您可以使用WSGI應用程序中的cgi
模塊閱讀表單提交,如果您喜歡,或者再次做自己的事情。
不幸的是,hoohoo.ncsa,CGI 1.1規範的以前的標準版本,最近關閉了。 [RFC 3875](http://www.ietf.org/rfc/rfc3875)提供了可讀性較差的相同信息, – bobince 2010-04-21 06:30:47