集成Python和Javascript

时间:2015-06-25 01:29:58

标签: javascript python

我有一些JavaScript通过Slack中的传出Web钩子进行通信,以便读取Slack帖子,对其进行一些计算,然后作为bot发回。我有这个工作正常,但我想从这些消息存储数据库中的信息。 (基本上,我想跟踪点并向Slack提供点更新)。

我设置了一个Python脚本来与数据库通信,并且在使用新的点值等更新数据库时工作正常。我的问题是尝试让JavaScript与Python谈话,Python与JavaScript交谈......我需要传递两个字符串(人名以获得更多点,以及要添加多少点)从JavaScript到Python,然后将一个整数/字符串从Python传递给JavaScript。

我已经在网上搜了好几个小时了,我从论坛上得出的结论是它可能与cgi / JSON / AJAX / JQuery有关,但我在执行中迷失了方向。任何人都可以解释如何进行这两个谈话吗?

2 个答案:

答案 0 :(得分:2)

首先,我没有使用Slack的经验,但我认为这并不重要。为了实现这一目标,您需要将几个部分组合在一起。首先,你有你的Python脚本,你说它工作正常 - 我猜测脚本是通过从终端手动运行它来工作的,所以你需要一种将它暴露到互联网的方式

那就是你所谓的 cgi

有很多方法可以做到这一点,但它基本上归结为拥有一个带有端点的Web服务器,当访问它时,使用适当的参数启动脚本并返回其输出。当您熟悉Python时,我建议您查看Flask,这是一个非常易于使用的微框架,可以让您设置一个小型Web应用程序。有几种运行Web应用程序的方法,尤其取决于您使用的Web服务器。快速谷歌搜索将显示许多关于此事的教程。

此外,正确格式化从后端发送到Web前端的消息非常重要,反之亦然。 这就是你提到JSON 的原因。这是一种来回传递消息的好方法。您可以使用内置和第三方库轻松地将Python对象(如dicts)转换为JSON。

为了在不刷新网站的情况下动态请求和加载来自前端的信息,您需要某种异步过程。 这就是AJAX的含义。它是一种异步发送和接收信息的机制,因此您的网站可以继续接收信息。

但是,以跨浏览器兼容的方式手动执行AJAX请求是PITA,所以您最好使用jQuery 及其与AJAX相关的功能。< / p>

因此,这些将是您应该遵循的元素和步骤,以使JavaScript与Python对话。

答案 1 :(得分:0)

我自己没有尝试过,但你应该能够将javascript数据写入json文件,这可以通过json模块由Python读取。

how to write json files in javascript

http://pymotw.com/2/json/