以下是一些将 Python 与 JavaScript 相结合的巧妙方法:
将数据从 html/js 返回到 python
注意:由于您提到您没有服务器,因此您使用 javascript 调用的请求必须指向运行 python 代码的套接字的侦听端口。简单的方法是使用 python 监听端口 80,然后进行常规调用,而无需考虑 JavaScript 中的 :80。
基本上,HTML 表单,使用 JavaScriptonSubmit()
或调用上面帖子中代码的按钮AJAX
,然后让 Python 读取数据(根据链接顶部显示的JSON
结构数据)<form>
JSON format
下面是关于如何通过 javascript 使用表单数据的简短介绍:
<HTML>
<HEAD>
<TITLE>Test Input</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function testResults (form) {
var TestVar = form.inputbox.value;
alert ("You typed: " + TestVar);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="myform" ACTION="" METHOD="GET">Enter something in the box: <BR>
<INPUT TYPE="text" NAME="inputbox" VALUE=""><P>
<INPUT TYPE="button" NAME="button" Value="Click" onClick="testResults(this.form)">
</FORM>
</BODY>
</HTML>
使用此原则收集您的信息,
然后在顶部提到的链接中构建 AJAX 部分。
完成此操作后,启动侦听这些调用的 python 脚本(也显示在链接中)。
请记住:要使用JSON,请正确格式化,'
例如,它必须是"
!
在我的链接中,这是将 GET 请求发送到“服务器”(python 脚本)的重要部分:
xmlhttp.open("GET","Form-data",true);
这是python部分:
from socket import *
import json
s = socket()
s.bind(('', 80)) # <-- Since the GET request will be sent to port 80 most likely
s.listen(4)
ns, na = s.accept()
while 1:
try:
data = ns.recv(8192) # <-- Get the browser data
except:
ns.close()
s.close()
break
## ---------- NOTE ------------ ##
## "data" by default contains a bunch of HTTP headers
## You need to get rid of those and parse the HTML data,
## the best way is to either just "print data" and see
## what it contains, or just try to find a HTTP parser lib (server side)
data = json.loads(data)
print data