我试图从我的JavaScript代码调用Python中的函数.我使用了这里解释的代码,但它对我不起作用.
这是我的JS代码:
<!DOCTYPE html>
<body>
<script type="text/javascript" src="d3/d3.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
text ="xx";
$.ajax({
type: "POST",
url: "~/reverse_pca.py",
data: { param: text}
}).done(function(o) {
console.log(data);
console.log(text);
});
Run Code Online (Sandbox Code Playgroud)
Python代码:
import csv
from numpy import genfromtxt
from numpy import matrix
def main():
...
return x
if __name__ == "__main__":
x=main()
return x;
Run Code Online (Sandbox Code Playgroud)
你知道它有什么问题吗?
我正在编写一个 chrome 扩展程序,它将内容脚本注入用户访问的每个页面。我想要做的是获取 Python 函数的输出,以便在内容脚本中使用(不能用 javascript 编写,因为它需要原始套接字才能连接到我的远程 SSL 服务器)。
我读过有人可能会使用 CGI 和 Ajax 或类似的方法将 python 代码的输出转换为 javascript 代码,但我遇到了 3 个问题:
我不允许在本地服务器上托管 python 代码,因为它是只有本地计算机才能知道的安全敏感数据。
Chrome 要求 HTTP 和 HTTPS 不能混合 - 如果用户访问 HTTPS 网站,我无法在 HTTP 服务器上托管 python 代码。
我认为 Chrome 甚至不支持扩展上的 CGI——当我尝试访问本地文件时,它所做的只是打印出文本(python 代码本身)而不是我定义为它的输出的内容(我试图这样做使用烧瓶)。正如我在 1 中所说,无论如何我都不应该尝试这个,但这只是一个旁注。
所以我的问题是,如何在使用 javascript 构建的内容脚本中获取 python 函数的输出?
编辑:谷歌群组帖子
我正在和Brython一起玩。
我想弄清楚如何从 JavaScript 执行 Brython 代码。
http://www.brython.info/static_doc/en/jsobjects.html <--这看起来像相关的文档页面,但似乎缺少从 JavaScript 调用 Brython 函数的示例。
对于我的具体情况,我正在收听 MIDI 事件(使用https://github.com/cwilso/WebMIDIAPIShim)
我希望 Brython 代码响应接收到的 MIDI 事件而执行。
目前我正在尝试:
function myMIDIMessagehandler( event )
{
if( brythonListener != null )
brythonListener( event );
Run Code Online (Sandbox Code Playgroud)
和 Brython 代码:
<script type="text/python3">
from browser import document as doc, window, html
def foo(event):
print("BRYTHON!" + event);
window.brythonListener = foo
</script>
Run Code Online (Sandbox Code Playgroud)
但是当我在我的 MIDI 键盘上按下一个音符时,我得到:
我不知道如何处理这个错误,而且我完全不确定这种方法是否合理。