Вот как я собираю в Python 3 из CGI (A) URL, (B) GET параметров и (C) POST данных:
=============================================== ========
import sys, os, io
CAPTURE URL
myDomainSelf = os.environ.get ('SERVER_NAME')
myPathSelf = os.environ.get ('PATH_INFO')
myURLSelf = myDomainSelf + myPathSelf
CAPTURE GET DATA
myQuerySelf = os.environ.get ('QUERY_STRING')
ЗАПИСЬ ПОЧТОВЫХ ДАННЫХ
myTotalBytesStr = (os.environ.get ( 'HTTP_CONTENT_LENGTH')) * * 1 021
if (myTotalBytesStr == Нет):
myJSONStr = '{"error": {"value": true, "message": "No (post) data received"}}'
еще:
myTotalBytes=int(os.environ.get('HTTP_CONTENT_LENGTH'))
myPostDataRaw = io.open(sys.stdin.fileno(),"rb").read(myTotalBytes)
myPostData = myPostDataRaw.decode("utf-8")
Запись RAW в файл
mySpy = "myURLSelf: [" + str (myURLSelf) + "] \ n"
mySpy = mySpy + "myQuerySelf: [" + str (myQuerySelf) + "] \ n"
mySpy = mySpy + "myPostData: [" + str (myPostData) + "] \ n"
Здесь вам нужно определить свой собственный myPath
myFilename = "spy.txt"
myFilePath = myPath + "\" + myFilename
myFile = open (myFilePath, "w")
myFile.write (mySpy)
myFile.close ()
=============================================== ========
Вот некоторые другие полезные переменные среды CGI:
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
GATEWAY_INTERFACE
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
=================================
Я использую эти методы на Windows Server с MIIS и Python 3 в режиме CGI.