根据 I/O 的复杂性和频率,您可以将参数发布到 python CGI 脚本并以 JSON 对象的形式返回结果
首先,在 JS 中:
function doIO (data) {
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyStatus == 4) {
if (request.status == 200) {
alert('Success!');
var data = JSON.parse(xmlhttp.responseText);
// do something with response data
}
else { alert('Failure'!); }
}
};
request.open("POST", python_cgi, true);
request.send(data);
}
在 python 中,您需要实现一个 CGI 脚本来解析数据,找出请求的 I/O 并执行它。您的 python 脚本可能类似于以下内容:
import cgi, json, sys
form = cgi.FieldStorage()
command = form.getFirst('command')
if command == "filePicker":
# run tkinter file picker
# build json response object
elif commoand == "myIoCommand":
# do some I/O
# build json response object
print "Status: 200"
print "Content-Type: application/json"
json.dump(response, sys.stdout)
如果您需要一些灵感来形成您的 json 响应对象,请参阅例如Google Maps 的 JSON 响应。
如果您需要更频繁/更复杂的 I/O,也许您需要做的是通过更小、更频繁的 AJAX 调用为您的应用程序设置一个具有镜像状态的 Python 服务器。您可以使用框架来制作 RESTful 应用程序,也可以通过从BaseHTTPServer
.