您好我想调用Python代码(代码名称是match.py)并通过HTML / Javascript检索其结果(我正在使用Node JS)。我现在拥有的是:
<div class="panel-body">
<form role="form" method="POST" action="new">
<button type="find" id="find" onclick="match()" class="btn btn-default">Find Match</button>
<script>
$(function() {
$('find').click(function() {
$.ajax({
url: '/Users/reinapark/Downloads/match17/match.py',
data: $('form').serialize(),
type: 'POST',
success: function(response) {
console.log(response);
$("#div1").html(response);
},
error: function(error) {
console.log(error);
}
});
});
});
</script>
</form>
</div>
我的问题是: 1.如何将数据发送到Python代码? 2.#div1在这做什么?
对不起,如果问题没有意义 - 我是一个Python / Node JS初学者,不太清楚我在做什么!!
答案 0 :(得分:1)
您的代码显示了一些HTML,其中包含一些产生Ajax请求的JavaScript代码。它与NodeJS无关。
另一方面,NodeJS是用于在服务器端执行JavaScript代码的JavaScript运行时环境。因此,您的代码在客户端(在浏览器中)执行,并向服务器发送Ajax请求,以异步方式从服务器获取一些数据,并使用新数据刷新网页的一部分,而无需刷新整个页面
关于你的问题:
url: '/Users/reinapark/Downloads/match17/match.py',
)获取本地文件。这是不可能的,因为由于安全风险,浏览器无法以这种方式访问本地文件。因此,您必须在服务器上运行您的python代码,为要获取的数据创建一个接口(例如,通过创建Web服务),并在尝试时使用JavaScript Ajax调用从服务器获取该数据。第一个div只代表HTML页面的一部分。它将HTML元素组合在一起。您的div还定义了 class 属性,可以在JavaScript中使用它来获取特定的div:
document.getElementsByClassName(&#34;面板体&#34);
或将一些CSS设置为该类的所有HTML元素。例如,在你的.css文件中:
.panel-body {
width: 500px;
margin: auto;
border: 3px solid #73AD21;
}
$('#div1')
是jQuery代码,用于获取ID为&#39; div1&#39;的元素。这与在纯JavaScript中键入document.getElementByID('div1')
相同。
`$('#div1').html(response)` changes the html of that div to the response received.
答案 1 :(得分:0)
好的,所以我根据我的理解和我认为您想要检索脚本/Users/reinapark/Downloads/match17/match.py
因此,您无法从浏览器访问match.py的结果,您需要像apache, nginx
这样的Web服务器在服务器端运行它,以后可以通过javascript访问它。
我建议你开始研究如何在网络服务器上运行python程序,你会在google上获得很多教程。
现在提出第二个问题。
$("#div1").html(response); what does this do ?
实际上它是javascript代码#代表html语句的代码
如下所示代码id是find
<button type="find" id="find" onclick="match()" class="btn btn-default">Find Match</button>
所以基本上当你这样做时
$("#div1").html(response);
你要将你在url中提到的地址的响应添加到id为div1的html元素
我希望这可以帮助您从
开始