2015-06-22 133 views
2

菜单和一些工具栏按钮,或者运行Python代码我想用一个Jupyter笔记本来管理数学考试我的高中学生在那里的iPad,我就开始为每一个服务器学生,并让他们连接到有自己的服务器上那里他们会发现有自己的笔记本测试。我已经使用小部件编写了测试,效果很好,但我想确保他们不能对此笔记本做任何事情,除非参加测试。我有两个想法,我一直无法工作。Jupyter(IPython的笔记本),隐藏加载

理念1:隐藏菜单栏和工具栏上的所有按钮,添加一个按钮,将运行在这本书中唯一的细胞,将有“%运行exam.py”,将开始测试。有了这个设置,学生不能做额外的编码,因为在ipad上他们不能使用Shift + Enter来启动一个新的单元格。

我的问题是,我一直没能找到一种方法来隐藏菜单栏或隐藏工具栏按钮的具体。

理念2:在custom.js我注意到,你可以用“IPython.notebook.kernel.execute(‘代码在这里’)”运行Python代码。所以我希望在加载笔记本时custom.js会隐藏标题,然后自动运行我的考试代码。

我似乎无法得到任何ipython代码在加载时运行,我甚至不知道这是可能的吗?

我不知道JavaScript,所以我的尝试一直在摸索与custom.js中的例子无济于事。

想法是否可行和/或是否有更好的方法来使用笔记本管理考试?

回答

1

1)你可能想阅读this有关质量为学生的IPython部署。 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 
    }) 
}); 

但总的来说,似乎你错过了使用工具。

+0

我同意,这是使用它没有缩进的东西的笔记本电脑,但它是那么容易写在IPython的考试,这样我只有写每类问题的一次,它会为每个学生稍有不同,每次我在测试中使用它。 – StevenD

+0

我觉得你在你的答案中缺少一个“)”,我实际上不得不在js函数中使用“IPython.notebook.execute_cell()”来让我的代码正确地运行这些小部件,感谢您的帮助 – StevenD

+0

是I理解时间压力,修正括号,我认为你的用例生成一个考试/学生对于像nbgrader这样的项目很有意思。 – Matt

相关问题