我想使用Jupyter笔记本来管理我的高中生在那里的数学测试,我会为每个学生启动一个服务器并让他们连接到那里有自己的服务器,在那里他们会找到自己的笔记本测试。我已经使用小部件编写了测试并且它工作得很好,但是我想确保除了参加测试之外他们不能对这个笔记本做任何事情。我有两个想法,但我无法工作。
创意1:隐藏菜单栏和工具栏中的所有按钮,并添加一个按钮,该按钮将运行书中唯一具有“%run exam.py”的单元格,该单元格将开始测试。使用此设置,学生无法进行额外编码,因为在ipad上他们无法使用Shift + Enter来启动新单元格。
我的问题是我无法找到隐藏菜单栏或隐藏工具栏中特定按钮的方法。
创意2:在custom.js中,我注意到您可以使用“IPython.notebook.kernel.execute('code here')”运行python代码。所以我希望加载笔记本,custom.js会隐藏标题,然后自动运行我的考试代码。
我似乎无法在加载时运行任何ipython代码,我甚至不知道这是否可行?
我不知道javascript,所以我的尝试一直在使用custom.js中的示例,但无济于事。
这两种想法是否可行和/或是否有更好的方法来使用笔记本来管理考试?
答案 0 :(得分:1)
1)您可能希望阅读有关为学生大规模部署IPython的this。
2)如果你没有使用IPython笔记本来运行代码,那么你可能会使工具超出其使用范围,而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
})
});
但总的来说,似乎你错过了使用这些工具。