将表单数据传递给python

2024-04-26 18:54:43 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
1条回答
网友
1楼 · 发布于 2024-04-26 18:54:43

以下是将Python与JavaScript结合起来的几种简单方法:

Return data from html/js to python

注意:因为您提到您没有服务器,所以您用javascript调用的请求必须指向运行python代码的套接字的侦听端口。 简单的enouhg就是使用python监听端口80,只需执行常规调用,而不必考虑JavaScript中的:80。

基本上,HTML表单,使用JavaScriptonSubmit()或调用上面文章中的AJAX代码的按钮,然后让Python读取JSON数据(根据链接顶部显示的JSON format构造<form>数据)


下面是一个关于如何通过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

相关问题 更多 >