我正在尝试(未成功)将命令行参数传递给由 javascript XMLHTTPRequest 调用的 python 程序。 在我的 python 程序中,我使用了
sys.argv
、getopt
和 argparse
,所有这些都在从命令行运行时有效,但在从 Javascript 脚本调用时无效。 在我的 Javascript 程序中我尝试过:
xhr.open('GET', 'https://solarpredictor.co.uk/test.py?solcast&full&graph', true);
xhr.open('GET', 'https://solarpredictor.co.uk/test.py?s=solcast&f=full&g=graph', true);
和
xhr.open('GET', 'https://solarpredictor.co.uk/test.py?solcast', true);
这些都不起作用。 在每种情况下,py 程序都找不到参数。
如何让 python 程序在 XMLHTTPRequest 中调用时检索参数?
不管怎样,这是我的Python程序:
#!/usr/bin/python3
import sys
solcast = False
full = False
graph = True
print("len = ",len(sys.argv))
for x in range(1,len(sys.argv)):
param = sys.argv[x]
print(param)
if param == 'solcast':
solcast = not solcast
elif param == 'full':
full = not full
elif param == 'graph':
graph = not graph
print(solcast,full,graph)
您不传递命令行参数。您没有在命令行上运行脚本。
您可以通过某种方式将 HTTP 服务器与 Python 代码连接起来。上次我研究 Python 时,通常认为最好的方法是 WSGI,但也可以使用其他方法,例如 mod_python 和 CGI。 (您的评论表明您正在使用 CGI)。
这些接口的通用 Python 库具有从请求 URL 读取查询字符串的功能。