在Python中发布交互式科学结果

时间:2015-12-11 17:08:04

标签: javascript python django d3.js

我不确定这个问题是否适合这个社区,但我不知道在哪里提问。

我没有网络编程的背景,但最近我启动了一个网络项目,例如Leaflet.jsd3.jsjQuery ......很多的js库。 但是,我不认为它是一个“简单”的Web项目,因为我们有一些科学模型将在Python(使用scikit,numpy等)开发,并且结果将进一步绘制在{{1地图。我们计划将其作为一个Web项目轻松分享结果,并且因为我们可以通过Leaflet.js实现互动。

鉴于此,我想知道哪种方法很好。我不知道我是否应该以某种方式从javacript文件中调用Python函数,或者我是否应该学习d3.js之类的框架......我想要记住我的项目之前是怎样的启动关键部分,我试图想象如何做到这一点。

这可能会被投票结束,但任何见解都会有所帮助。

1 个答案:

答案 0 :(得分:1)

使用Python作为一种优秀的编程语言,你几乎没有选择

  • 发布结果as a IPython Notebook - 这似乎是当今科学界的事实标准。您可以将d3.js和各种其他组件集成到笔记本中。如果您是科学家或数据分析师,我建议您探索此选项。

  • 将结果发布为静态网站。基本上,您可以在自己的计算机上离线生成一组来自Python模板的HTML文件。然后你将结果上传到某个地方。或者只是将它们压缩并通过电子邮件发送到某个地方......这很简单,因为它只是一堆文件。 There exist many static website generators

  • 使用微型网络框架,例如PyramidFlask。如果您只是希望获得一些动态性而这些是解决方案,那么这些就是解决方案。需要注册,登录并忘记密码流程。

  • 使用像Django这样的非微型Web框架 - 这为您提供了用户管理,对象关系映射以及您在科学工作中不需要的其他一些东西。

对于后两个选项,您通常需要获得虚拟机(VPS)托管,或者如果您感觉很富有,则可以使用Amazon EC2,Microsoft Azure云或Heroku。动态网站托管通常需要更多资金,因为您需要投资到您自己的服务器或应用程序容器。更进一步,这是一个更复杂的过程,因为您需要学习完整堆栈Web编程的基础知识。

enter link description here