【发布时间】:2016-06-28 12:09:32
【问题描述】:
我正在尝试理解 http 查询,并通过环境变量成功地从 GET 请求中获取数据,方法是首先查看环境变量的键,然后访问“QUERY_STRING”以获取实际数据。
像这样:
#!/usr/bin/python3
import sys
import cgi
import os
inputVars = cgi.FieldStorage()
f = open('test','w')
f.write(str(os.environ['QUERY_STRING])+"\n")
f.close()
有没有办法获取 POST 数据(相当于 POST 的“QUERY_STRING” - 可以这么说),还是因为 POST 数据是在自己的包中发送而无法访问?到目前为止,环境变量的键没有给我任何提示。
【问题讨论】:
-
感谢您的建议!可悲的是,这不是我试图问的。我正在以某种方式寻找 POST 等效的 von 'QUERY_STRING'。我确实了解如何通过 cgi FieldStorage 获取单个参数,但我尝试以原始格式获取 Post 消息数据。我希望这能澄清我的问题。我稍微编辑了我的问题。
-
Schien 的第二个回答说:
n Python, these functions would be os.getenv('QUERY_STRING') and sys.stdin.read(). Remember to import os and sys modules.所以我认为相当于在标准输入上阅读。可能应该有一个 cgi 标准来定义它? -
你是绝对正确的。我应该更深入地阅读cmets!他们大多数时候总是提供这些很棒的额外答案。感谢您指出了这一点!我在这里很新。保持重复在线有用吗?还是我应该删除我的问题?
-
我猜你的问题并不是问题的重复,因为你不是要求一般处理,而是特别关于环境变量。因此,我想您的问题很有价值,因为如果其他人问自己该特定问题,他可能会找到您的问题而不是另一个问题(即使其中一个答案提供了您问题的答案)。您可以发布一个自我回答并接受吗?
标签: python http http-post environment-variables cgi