Jupyter (блокнот ipython), скрыть меню и некоторые кнопки панели инструментов или запустить код python при загрузке
Я хотел бы использовать блокнот Jupyter для администрирования тестов по математике для своих учеников старших классов на своих ipads, я бы запустил сервер для каждого учащегося и попросил их подключиться к этому собственному серверу на этих ipads, где они найдут свой собственный тест на блокнот. Я написал тест с использованием виджетов, и он отлично работает, но я хотел бы убедиться, что они не смогут ничего сделать с этим ноутбуком, кроме как пройти тест. У меня есть две идеи, которые я не смог заставить работать.
Идея 1: скрыть строку меню и все кнопки от панели инструментов и добавить одну кнопку, которая будет запускать единственную ячейку в книге, которая будет иметь "%run exam.py", которая запускает тест. С этой настройкой ученик не мог делать дополнительное кодирование, потому что на ipad они не могли использовать Shift+Enter, чтобы начать новую ячейку.
Моя проблема в том, что я не смог найти способ скрыть строку меню или скрыть определенные кнопки на панели инструментов.
Идея 2: В custom.js я заметил, что вы можете запускать код на Python с помощью "IPython.notebook.kernel.execute(" code here ")". Поэтому я надеялся, что при загрузке ноутбука файл custom.js скроет заголовок, а затем автоматически выполнит мой экзаменационный код.
Кажется, я не могу заставить работать любой код ipython во время загрузки, я даже не знаю, возможно ли это?
Я не знаю javascript, поэтому мои попытки провалились с примерами в custom.js безрезультатно.
Возможна ли идея, и / или есть ли лучший способ использовать ноутбук для проведения экзамена?
1 ответ
1) Вы, вероятно, хотите прочитать о массовом развертывании 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
})
});
Но в целом кажется, что вы не используете инструменты.