如何在使用 django 构建的主页上显示 jupyter notebook?
Posted
技术标签:
【中文标题】如何在使用 django 构建的主页上显示 jupyter notebook?【英文标题】:How can I display an jupyter notebook on a homepage built with django? 【发布时间】:2018-01-21 01:21:57 【问题描述】:环境:
Python 3.6 Django 1.11
我将.ipynb
文件保存为.html
,因为我想实现此html 以将其显示在我的主页上(尚未上线)。
我在我的主页上使用 Bootstrap 4.0 beta 作为样式。我有一个导航栏,它被继承到这个项目的任何 html 文件中,它工作得非常好。
但是jupyter notebook的html文件只有在我不继承navbar的情况下才能正确显示。如果我尝试继承,导航栏将不再正确显示。
我的计划是建立自己的博客,在其中发布 markdown 文件(当我不包含 Python 或 R 代码时)或 jupyter notebook 或 rmarkdown notebook。
RMarkdown 或 Jupyter Notebooks 都可以转换为 html、markdown 或 pdf。但是尝试了前2个,它不起作用。如您所知,如果在浏览器中打开,它们会完美显示。但是我当然想保持我已经实现的导航。
所以我希望你能给我一个提示,我该怎么做;我还是个初学者,尤其是 Django。但是我尝试了很多东西:
-
我首先准备好主页并使用 Django 应用程序 zinnia。我可以发布带有可用结果的 RMarkdown,但不能发布 Jupyter 笔记本(因为同样的问题)。
我尝试转换为 Markdown 并在 Zinnia 中使用它,但结果更糟。
试图操作笔记本的 html 文件,但这并没有改变任何东西。
尝试在终端用nbconvert手动转换(我认为这是相同的转换方法,因为没有区别)
从头开始构建一个新页面(这次使用 bootstrap 4,而首先我使用 3)。但同样的问题仍然存在。
唯一可行的方法是省略导航栏或省略样式。但显然其他人已经找到了完美的解决方案,因为网上有很多页面都很好地实现了 jupyter notebook。
我有一个 base.html,其中创建了导航栏并加载了引导样式。所有其他 html 文件都继承自该文件,如下所示:
% extends 'base.html' %
% block content %
(here is the individual html content or the html code of the jupyter notebook)
% endblock %
编辑: 我刚刚发现这个:https://nipunbatra.github.io/blog/2017/Jupyter-powered-blog.html
看起来这个人在遇到同样的问题时找到了解决方法,但我无法理解所有内容。
如果您对我有任何提示,请告诉我。对于所有遇到相同问题的人,也许您可以使用该博客文章中的信息解决问题。
【问题讨论】:
【参考方案1】:虽然我没有完美的解决方案,但我认为这只是有人花一些时间清理前端外观的问题。我不擅长js
等,但在后端我做了一些事情。
nbconvert
与basic
模板一起使用,如您的博客中所述
在 Django 中使用 FileField
模型上传此内容
为这些创建一个视图;可能是列表和详细视图
剩下的将是:
创建一个模板,获取基本的 html 文件并使用样式表将其修饰为您喜欢的样子正如我所说,我已经完成了前三个步骤,但输出很难看。您也可以尝试使用ipypublish 进行HTML 转换。 Jupyter 有一个博客对我来说很有趣,但我找不到任何关于他们如何或是否使用笔记本来制作它的文档......
【讨论】:
以上是关于如何在使用 django 构建的主页上显示 jupyter notebook?的主要内容,如果未能解决你的问题,请参考以下文章