无法使用js的onClick属性运行js脚本

2024-06-14 07:50:23 发布

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

我正在尝试运行python脚本。我有一个html的输入字段,它将值传递给js文件。然后我使用pythonshell将参数形式的值传递给python脚本来执行它们。我正在使用express.js编写脚本

这是我的temp.ejs文件

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script  src="./index.js"></script>
    <title>Document</title>
</head>
<body>
    <img src="./my_plot.png">
    <form>

    <input type="text" id="source" />
    <button  onclick="get_data();">Go!</button>
    </form>
</body>
</html>

索引.js



function get_data() {
  var source = document.getElementById("source").value;
  alert(source);

var options = {
   args: [source],
  pythonPath: '/usr/bin/python3'
};

var tests = new PythonShell('hello.py', options);
tests.on('message', function (message) {
  // received a message sent from the Python script (a simple "print" statement)
  console.log(message);
}); 
}

python文件

import matplotlib.pyplot as plt
import numpy as np
import wave
import sys

CHANNELS = 2
swidth = 4
Change_RATE = 2
T = int(sys.argv[1])

#print(source)
q = 0.5
Q = 1/10
A = 1 # amplitude of signal # quatization stepsize
N = 2000
spf = wave.open('sample.wav', 'rb')
RATE=spf.getframerate()
Byte = spf.getsampwidth()
signal = spf.readframes(1024)
signal = np.fromstring(signal, 'Int16')
def uniform_midtread_quantizer(x, Q):
    # limiter
    x = np.copy(x)

    idx = np.where(np.abs(x) >= 1)
    x[idx] = np.sign(x[idx])
    # linear uniform quantization
    xQ = Q * np.floor(x/Q + 1/2)

    return xQ

def plot_signals(x, xQ, T):
    e = xQ - x
    plt.figure(figsize=(10,6))
    plt.plot(signal, label=r'quantized signal $x_Q[k]$')
    plt.xlabel(r'$k$')
    plt.axis([0, N, -T, T])
    plt.grid()
    plt.savefig('my_plot.png')

# generate signal
x = signal
# quantize signal
xQ = uniform_midtread_quantizer(x, Q)
# plot signals
plot_signals(x, xQ, T)


当我在terminal中执行node index.js时,我得到的是所需的输出,而不是通过html传递值时(因此python和js文件没有错误) Express.js并没有像我使用的那样导致错误,但是同样的错误也发生了


Tags: 文件import脚本sourcemessagesignalplothtml