如何从javascript(木星笔记本扩展)调用python代码?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (323)

我发现我可以通过这样的Ajax请求来完成这类事情:

var create_variable_cell_button = function (cell,celltoolbar) {

     Jupyter.toolbar.add_buttons_group([{
     label: 'Variable Button',
     icon: 'fa-university',
     callback: get_variable
     }])

}

function get_variable() {

     $.ajax({
         type:"GET",
         url:"pythoneq.py",
         dataType:python,
         success: function(response) {
              alert("successfully executed script")
     },
     });

}

所以我试了一下,但什么都没发生,我是不是忘了什么?还是做错了什么?

提问于
用户回答回答于

1.安装PyExecJs:

pip install pyexecjs

2.样本代码:

import execjs

# 1. define get js file function
def get_js(): 
    f = open("./js/des_xxx.js", 'r', encoding='UTF-8')
    line = f.readline()
    htmlstr = ''
    while line:
        htmlstr = htmlstr + line
        line = f.readline()
    return htmlstr

# 2. get and compile js file, then call function named 'enString'
jsstr = get_js()
ctx = execjs.compile(jsstr)
print(ctx.call('enString','123456'))

3.JS文件中的“enString”功能:

function enString(data){
    var key1 = "YHXWWLKJYXGS";
    var enchex = strEnc(data,key1);
    return enchex;
}

扫码关注云+社区

领取腾讯云代金券