我不确定这个问题是否适合这个社区,但我不知道在哪里问。
我没有网络编程背景,但最近我启动了一个网络项目,例如使用Leaflet.js
, d3.js
, jQuery
...很多js库。
然而,我不认为它是一个“简单”的网络项目,因为我们有一些科学模型将在 Python
中开发。 (使用 scikit、numpy 等),哪些结果将进一步绘制在 Leaflet.js
上 map 。我们计划将其作为一个网络项目,以便轻松共享结果,并且因为我们可以通过 d3.js
实现交互性。 .
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 编程的基础知识。
关于javascript - 用 Python 发布交互式科学成果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228848/