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