javascript - 用 Python 发布交互式科学成果

标签 javascript python django d3.js

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

我没有网络编程背景,但最近我启动了一个网络项目,例如使用Leaflet.js , d3.js , jQuery ...很多js库。 然而,我不认为它是一个“简单”的网络项目,因为我们有一些科学模型将在 Python 中开发。 (使用 scikit、numpy 等),哪些结果将进一步绘制在 Leaflet.js 上 map 。我们计划将其作为一个网络项目,以便轻松共享结果,并且因为我们可以通过 d3.js 实现交互性。 .

鉴于此,我想知道哪种方法是好的。我不知道我是否应该以某种方式从 javacript 文件调用 Python 函数,或者我是否应该学习像 Django 这样的框架。 ...因为我喜欢在开始关键部分之前记住我的项目将如何,所以我试图想象如何做到这一点。

这可能会被关闭或被否决,但任何见解都会有所帮助。

最佳答案

使用 Python 这样出色的编程语言,您的选择很少

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

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

  • 使用微型网络框架,例如 Pyramid , Flask 。如果您只想增加一些动态性但又不想这样做,那么这些就是解决方案。需要注册、登录和忘记密码流程。

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

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

enter link description here

关于javascript - 用 Python 发布交互式科学成果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228848/

相关文章:

python - "ImportError: DLL load failed while importing _openmp_helpers"?

python - 如何在迁移过程中访问不在 django 模型中但在数据库中可用的字段

javascript - 当事物未定义时,有没有办法让 Angular.js 更冗长?

javascript - 用于进行圆形选择的 jQuery 插件

javascript - Onload清除所有文本字段jquery js

python - Metropolis-Hasting算法求解高斯积分的实现

python - 设计一个不使用账户的Django投票系统

python - 应用引擎 : Difference between NDB and Datastore

java - 使用 Jackson 进行反序列化 : "org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of [projectname]."

python - 使用就地切片扩展列表类