2015-06-22 181 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

相關問題