如何解决JupyterLab:如何从 Javascript 前端触发对 python 后端的回调函数
我正在尝试构建一个 JupyterLab 小部件扩展
我创建了一个包含执行按钮的“example.js”文件和一个包含模型信息的“example.py”文件。
当我运行下面的代码时,
import ExampleWidget
from ExampleWidet import example
example.RunTool()
创建一个按钮,
我找不到实现这部分的方法,请帮忙。
谢谢
更新
Python 代码:
from ipywidgets import VBox,widget_serialization
from traitlets import Unicode,List,Dict,Instance
from ._frontend import module_name,module_version
#from .basewidget import BaseWidget
class ExampleUIoUtput(UIoUtput):
"""
Widget used to render Python output in a UI
"""
_model_name = Unicode('ExampleUIoUtputModel').tag(sync=True)
_model_module = Unicode(module_name).tag(sync=True)
_model_module_version = Unicode(module_version).tag(sync=True)
_view_name = Unicode('ExampleUIoUtputView').tag(sync=True)
_view_module = Unicode(module_name).tag(sync=True)
_view_module_version = Unicode(module_version).tag(sync=True)
name = Unicode('Python Results').tag(sync=True)
def __init__(self,**kwargs):
# Initialize the child widget container
self.appendix = VBox()
UIoUtput.__init__(self,**kwargs)
Javascript 代码:
export class ExampleUIoUtputModel extends UIoUtputModel {
defaults() {
return Object.assign(Object.assign({},super.defaults()),{ _model_name: ExampleUIoUtputModel.model_name,_model_module: ExampleUIoUtputModel.model_module,_model_module_version: ExampleUIoUtputModel.model_module_version,_view_name: ExampleUIoUtputModel.view_name,_view_module: ExampleUIoUtputModel.view_module,_view_module_version: ExampleUIoUtputModel.view_module_version,name: 'Python Results' });
}
}
ExampleUIoUtputModel.model_name = 'ExampleUIoUtputModel';
ExampleUIoUtputModel.model_module = MODULE_NAME;
ExampleUIoUtputModel.model_module_version = MODULE_VERSION;
ExampleUIoUtputModel.view_name = 'ExampleUIoUtputView';
ExampleUIoUtputModel.view_module = MODULE_NAME;
ExampleUIoUtputModel.view_module_version = MODULE_VERSION;
ExampleUIoUtputModel.serializers = Object.assign(Object.assign({},UIoUtputModel.serializers),{ appendix: {
deserialize: (value,manager) => unpack_models(value,manager)
} });
export class ExampleUIoUtputView extends UIoUtputView {
constructor() {
super(...arguments);
}
render() {
const Hello = document.createElement('button')
this.el.append(Hello)
Hello.addEventListener("click",function() {
console.log('Hello World');
},false);
}
}
实用程序:
我有一个 python 文件 Utils.py
,其中包含例如代码
def HelloWorld(name):
print('Hello '+name)
我希望当我单击按钮时它会执行此 python 代码或任何其他 python 代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。