将Jupyter笔记本与从Django应用程序获取的数据集成

时间:2016-06-03 14:58:04

标签: python django jupyter-notebook

我有一个Django应用程序,它集成了来自SQL数据库的数据,并将其显示为可下载的HTML表。现在我还想添加分析功能,但是我没有使用JavaScript精心添加一些功能,而是希望将用户重定向到Jupyter笔记本,这样用户就可以完全访问Python数据分析库的功能,甚至其他功能。语言。现在我不知道如何处理这个问题,我有几个问题:

  • 我认为Jupyter需要在与Django应用程序不同的服务器上运行,因为它使用的是Tornado服务器吗?
  • 如何将使用Django生成的数据传输到Jupyter?我将数据存储在一个新的MySQL表中,但我至少需要传输表名。
  • 鉴于表名被转移到Jupyter,我仍然需要执行自定义代码来访问数据库。我在这个question中发现可以在IPython配置中设置一些代码执行的默认值,但由于应该从中加载数据的表是不一样的,所以必须动态调整。

我很高兴有任何关于这个想法是否有意义的建议和评论。

1 个答案:

答案 0 :(得分:2)

  

我是否正确Jupyter需要在与Django应用程序不同的服务器上运行,因为它使用Tornado服务器?

没有。它们可以在同一台服务器上运行。

  

如何将使用Django生成的数据传输到Jupyter?我将数据存储在一个新的MySQL表中,但我至少需要传输表名。

你可以一起运行django和Jupyter并执行Jupyter的任何django代码。最简单的方法是使用shell_plus from the package django-extensions您甚至可以连接到生产数据库。

您应该考虑可能的安全和数据安全风险。这是远程代码执行和数据泄漏的潜在载体。

使用克隆数据库启动克隆的django实例或使用对数据库具有只读访问权限的其他django配置(settings.py)可能更安全。

很容易搞砸Jupyter的生产数据,因为你可以做User.objects.all().delete()这样的事情,那就是问题......

另外,请考虑将此作为具有比常规django应用程序更严格的读写权限的用户运行。

当然,您应该确保Jupyter网站不会公开访问网址。