Jupyter(ipython 笔记本),隐藏菜单和一些工具栏按钮,或 运行 python 加载代码

Jupyter (ipython notebook), hide menu and some toolbar buttons, or run python code on loading

我想使用 Jupyter notebook 为那里的高中生管理数学测试 ipads,我会为每个学生启动一个服务器并让他们连接到那里自己的服务器 [= =33=]s哪里会有自己的笔记本测试。我已经使用小部件编写了测试并且效果很好,但我想确保他们除了参加测试外不能用这个笔记本做任何事情。我有两个想法一直没能实现。

想法 1:隐藏菜单栏和工具栏中的所有按钮,并添加一个按钮,该按钮将 运行 书中唯一具有“%运行 exam.py" 将开始测试。使用此设置,学生无法进行额外编码,因为在 ipad 上,他们无法使用 Shift+Enter 来启动新单元格。

我的问题是我一直无法找到隐藏菜单栏或隐藏工具栏中特定按钮的方法。

想法 2:在 custom.js 中,我注意到您可以 运行 python 使用 "IPython.notebook.kernel.execute('code here')" 编码。所以我希望在加载笔记本时 custom.js 会自动隐藏 header 然后 运行 我的考试代码。

我似乎无法在加载时将任何 ipython 代码获取到 运行,我什至不知道这是否可能?

我不知道 javascript 所以我一直在摸索 custom.js 中的示例,但无济于事。

两种想法都可以吗and/or有没有更好的方法来使用笔记本来管理考试?

1) 您可能想阅读 this 有关为学生大规模部署 IPython 的内容。

2) 如果您没有使用 IPython notebook 来 运行 代码,那么您可能正在使用超出其用途的工具,而 Flask 应用程序可能更适合。

3) 您需要包装执行代码的调用,以便仅在内核启动后执行。如果您控制服务器,为什么不把东西放在 .ipython/profile_default/startup 中?否则使用以下(可能取决于您使用的确切版本):

require(['base/js/events','base/js/namespace'], function(events, IPython){
    events.on('kernel_ready.Kernel', function () {
        // your code here
    })
});

但总的来说,您似乎没有使用这些工具。