有没有一种方法可以将Python变量传递给Javascript,而无需将其写入文件?

时间:2019-06-16 01:07:55

标签: javascript python

假设我有一个简单的Python变量,例如:

x = 5

我想创建一个网页,该网页使用javascript进一步处理在同一台计算机(Raspberry Pi)上运行的变量。

<!DOCTYPE html>
<html>
<body>

<script>
document.write(x);
</script>

</body>
</html>

由于Raspberry Pi使用micro SD卡,因此我想限制读取/写入周期的数量。有没有办法将此Python变量存储在内存中(或其他方式),可以由Javascript代码访问?

我知道有些人会建议用Javascript重写Python代码,但是我已经有一个大型Python程序,由于时间和创建它所涉及的原始工作,我不希望不必重写它。而且,如果您很好奇,我正在使用Javascript通过Highcharts显示数据-这是我的项目的首选。

3 个答案:

答案 0 :(得分:2)

我想不出实现此目标的直接方法。但是我认为您可以在双方上使用socket-io并通过它进行交流。

编辑:

如S.Pellegrino所述,根据op的需求,从“大型Python程序”这一问题中构建REST API可能是一个不错的选择。

答案 1 :(得分:2)

一些想法:

  1. 在Python应用程序中运行Web服务器,并公开返回该数据的端点。在您的Javascript应用中,调用此API(可在0.0.0.0上访问)并使用数据。警告:您必须在Python应用程序中设置Web服务器并保持其运行。

这是一个更好的主意:

  1. 在Pi上运行Redis实例。 Redis是一个内存中的缓存提供程序,您可以配置它以不将任何数据持久存储到磁盘上。这样,它将成为您的Python和Javascript应用程序之间的内存中代理。 Redis在Pi上作为本地Web服务器运行,并公开用于写入和读取数据的端点。在您的Python应用程序中,调用Redis端点以写入一些数据,在您的Javascript应用程序中,调用Redis以读取所需的内容。

https://redis.io/topics/ARM

答案 2 :(得分:0)

您可以在URL中传递变量。

使用JavaScript,您可以提取URL参数。例如,请参见以下响应:https://stackoverflow.com/a/50769370/2223027