发现哪个内核已经启动

时间:2017-08-16 09:35:53

标签: jupyter-notebook

环境:我在Docker容器中生成Notebook服务器(版本5),并且有一个系统,用户可以从中选择他们希望启动的几个Notebook内核之一(因此,泊坞窗图像)。 / p>

我需要在笔记本服务器页面添加一个指示符,以指示哪个特定内核已经启动。

我已经拥有修改page.htmltree.html模板的模板,因此可以将我需要的任何内容添加到 html 中没问题....我是什么'我没有解决的问题是如何从Docker Container获取一些数据到Notebook Server渲染代码。

我推断可能是通过在jupyter_notebook_config.py文件中添加内容 - 但无法找到任何帮助。

有没有人这样做过?

1 个答案:

答案 0 :(得分:0)

感谢Jupyter开发人员...我有一个解决方案:

中传递数据

jupyter_notebook_config.py中你可以设置一个字典:

c.NotebookApp.jinja_template_vars = {'Ian_1':'One','ian_2':'Two'}

读取模板中的数据

在你的Jinja模板文件中,可能有一个获取参数的块。在tree.html中,它看起来像这样:

{% block params %}
{{super()}}
data-base-url="{{base_url | urlencode}}"
data-notebook-path="{{notebook_path | urlencode}}"
data-terminals-available="{{terminals_available}}"
data-server-root="{{server_root}}"
{% endblock %}

你需要做的就是添加变量(显然,它们区分大小写)....例如:

{% block params %}
{{super()}}
data-base-url="{{base_url | urlencode}}"
data-notebook-path="{{notebook_path | urlencode}}"
data-terminals-available="{{terminals_available}}"
data-server-root="{{server_root}}"
ian_1="{{ian_1}}"
ian_2="{{ian_2}}"
{% endblock %}

(请注意Ian_1

的错误大小写匹配

如果您现在查看笔记本中/tree页面的源代码,您会将它们作为属性找到body标记:

<body class=""
     data-jupyter-api-token="<token-string>"
     data-base-url="/"
     data-notebook-path=""
     data-terminals-available="True"
     data-server-root="/home/jovyan"
     ian_1=""
     ian_2="Two"
     dir="ltr">

(并注意由于案例不匹配,ian_1为空。)

使用变量

您现在可以将该变量用作Jinja中的任何其他变量(根据http://jinja.pocoo.org/