gpt4 book ai didi

javascript - 如何从 Javascript 或 Nodejs 执行 Python 脚本?

转载 作者:行者123 更新时间:2023-12-02 23:40:19 25 4
gpt4 key购买 nike

我正在尝试将 python 输出中的列表使用到 HTML 表单的下拉菜单中。

我有一个用 HTML/CCS 构建的网站、一个带有 NodeJS 的服务器以及一些我想在 python3 中使用的脚本。

我测试了多个东西,但我无法使其工作。

  1. 我尝试放入一些 Javascript,但无法从 python 脚本中获取信息

  2. 我尝试从nodeJS运行脚本,但是该脚本需要很长时间,所以它不起作用。

这是我的 app.js :

app.post("/getData", function (request, response) {
var IP = request.body.IP;
var user = request.body.user;
var password = request.body.password;
const testscript = exec('python getCPG.py ' + IP + user + password);
console.log("test1");
testscript.stdout.on('data', function (data) {
console.log("test2");
console.log(data);
// sendBackInfo();
});
//response.sendFile(path.join(__dirname + '/public/views/indexwithIP.html'));
//app.post("/LUNProvisionning", function (request, response) {
// console.log(request.body.serveur);
// console.log(request.body.volumetrie);
// console.log(request.body.type);
// response.sendFile(path.join(__dirname + '/public/views/index.html'));
//});

response.sendFile(path.join(__dirname + '/public/views/index.html'));
});

这是我的 html 表单:

    <form action="/getData" method="post" name="getData">
<fieldset>
<legend>LUN Provisionning</legend>
<label>IP baie : </label>
<input name="IP" id="IP" required>
<br />
<label>user baie : </label>
<input type="text" placeholder="3paradm" name="user" id="userbaie" required>
<label>Password baie : </label>
<input type="password" name="password" id="PWbaie" required>
<br />
</fieldset>
</form>

这会将数据发送到运行 python 脚本的服务器。但服务器需要太多时间才能得到答案。然后我会尝试将答案以下拉形式呈现。我必须创建 2 个表单,否则无法使用 JavaSscript 并放置按钮。

这是我的 python 脚本的输出:

SSD_r1
SSD_r5
SSD_r6
fs_cpg
CPG4S2

编辑“添加Python脚本”这是Python脚本:

from hpe3parclient import client, exceptions
import sys

IPbaie = sys.argv[1]
userbaie = sys.argv[2]
pwbaie = sys.argv[3]

cl = client.HPE3ParClient("http://" + IPbaie + ":8008/api/v1")
cl.setSSHOptions(IPbaie, userbaie, pwbaie)

def getCPG():
#retourn une liste
temp = []
cpg = cl.getCPGs()
listcpg = cpg['members']
for x in listcpg:
temp.append(x.get('name'))
return(temp)

try:
cl.login(userbaie, pwbaie)
print("login successful.")
except exceptions.HTTPUnauthorized as ex:
print ("login failed.")
try:
listcpg = getCPG()
for x in listcpg:
print (x)
except exceptions.HTTPUnauthorized as ex:
print ("You must login first")
except Exception as ex:
print (ex)

cl.logout()
print ("logout worked")

谢谢

最佳答案

由于 exec 已被弃用,因此如何使用 child_process.execFile:https://www.npmjs.com/package/exec

const {execFile} = require('child_process');
const testscript = execFile('python3', ['file_name.py', 'command_line_arg1', 'command_line_arg2', 'command_line_arg3'], (error, stdout, stderr) => {
if (error) throw error;
console.log(stdout);
})

这将打印 python 文件中的每个 print 语句。所以我建议你删除它们。

关于javascript - 如何从 Javascript 或 Nodejs 执行 Python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com