环境:我在Docker容器中生成Notebook服务器(版本5),并且有一个系统,用户可以从中选择他们希望启动的几个Notebook内核之一(因此,泊坞窗图像)。 / p>
我需要在笔记本服务器页面添加一个指示符,以指示哪个特定内核已经启动。
我已经拥有修改page.html
和tree.html
模板的模板,因此可以将我需要的任何内容添加到 html 中没问题....我是什么'我没有解决的问题是如何从Docker Container获取一些数据到Notebook Server渲染代码。
我推断可能是通过在jupyter_notebook_config.py
文件中添加内容 - 但无法找到任何帮助。
有没有人这样做过?
答案 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/)