在我的HTML页面和python脚本之间传输数据

时间:2017-12-25 15:15:16

标签: javascript python html jupyter-notebook

我有一个非常简单的HTML测试页面,它有一个简单的下拉菜单:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<select id="mySelect" onchange="copy();">
<option value="">Select a person:</option>
<option value="Value of m1" >m1</option>
<option value="Value of m2" >m2</option>
<option value="Value of m3" >m3</option>
 <option value="Value of m4" >m4</option>
</select>
<br>
<br>
<p>The value of your selected choice is: </p>
<div id="label"></div>
function copy() 
{
    var selected_value = document.getElementById("mySelect").value
    document.getElementById("label").innerHTML = selected_value
}
</script>
</body>
</html>

现在我想将选择的值传递给我的python脚本。我的python脚本有一个函数,它使用传递的值作为参数来提供JSON文件。我想传递值,然后运行脚本来生成我的JSON文件,当我选择一些东西。这只是用于测试,但我的最终HTML页面将有多个类似于这个的下拉列表,每个下拉列表将一个值传递给我的python,它将用作参数。一切都在当地使用本地主机完成。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:-3)

有点棘手。 您必须使用表单将数据发送到PHP-Web服务器。 然后使用shell_exec($ command)运行带参数的Python脚本。

您的PHP脚本应如下所示:

<?php
$input = $_GET['mySelect'];
//sanitize and check the input

$cmd = escapeshellcmd('/usr/custom/test.py -p ' . $input);
//escape the command

$output = shell_exec($cmd);
//run the script

echo $output;
?>

清理和检查用户输入非常重要,否则攻击者可以轻松访问您的服务器。

查看更多:http://php.net/manual/en/function.shell-exec.php

来自php.net的备注

  

当错误发生或程序产生&gt;无输出时,此函数可以返回NULL。使用此功能无法检测执行失败。当需要访问程序退出代码时,应使用&gt; exec()。&#34;

  

当PHP以安全模式运行时,此功能被禁用。