簡體   English   中英

如何在不使用 cgi.FieldStorage 的情況下從帖子中獲取 args 或獲取 Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM