[英]How do I get the args from a post or get with Python without using cgi.FieldStorage
我剛剛讀到 cgi 已被棄用,因此 cgi.FieldStorage 將停止工作。
我正在努力尋找此功能的替代品。 我嘗試過的所有搜索都涉及 urllib 或請求,兩者(AFAIK)都旨在創建請求,而不是響應它們。 提前致謝
對 urllib 的引用實際上有點誤導。 以下內容可能會從 python 程序員的角度對 cgi 接口提供一些見解:
#!/usr/bin/python3
'''
preflight_cgi.py
check the preflight option call
'''
import sys
import os
if __name__ == "__main__":
print("Content-Type: text/html") # HTML is following
print()
i = 0
for arg in sys.argv:
print("argv{}: {}\n".format(i, arg))
i = 0
for line in sys.stdin:
print("line {}: {}\n".format(i, line))
i += 1
print("<TITLE>CGI script output</TITLE>")
print("<H1>This is the environmet</H1>")
for it in os.environ.items():
print("<p>{} = {}</p>".format(it[0], it[1]))
將它放在當前基於 cgi.FieldStorage 的應用程序所在的位置,並通過瀏覽器的地址行調用它。
你會看到類似的東西
[...]
內容長度 = 0
QUERY_STRING = par=meter&var=able
REQUEST_URI = /cgi-bin/preflight_cgi.py?par=meter&var=able
REDIRECT_STATUS = 200
SCRIPT_NAME = /cgi-bin/preflight_cgi.py
REQUEST_METHOD = 獲取
服務器協議 = HTTP/1.1
SERVER_SOFTWARE = lighttpd/1.4.53
網關接口 = CGI/1.1
REQUEST_SCHEME = http
服務器端口 = 80
[...]
環境變量已經完成了大部分。
作為替代方案,您還可以使用 http.server 類之一來完全在 python 中構建服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.