我不确定这个问题是否适合这个社区,但我不知道在哪里提问。
我没有网络编程的背景,但最近我启动了一个网络项目,例如Leaflet.js
,d3.js
,jQuery
......很多的js库。
但是,我不认为它是一个“简单”的Web项目,因为我们有一些科学模型将在Python
(使用scikit,numpy等)开发,并且结果将进一步绘制在{{1地图。我们计划将其作为一个Web项目轻松分享结果,并且因为我们可以通过Leaflet.js
实现互动。
鉴于此,我想知道哪种方法很好。我不知道我是否应该以某种方式从javacript文件中调用Python函数,或者我是否应该学习d3.js
之类的框架......我想要记住我的项目之前是怎样的启动关键部分,我试图想象如何做到这一点。
这可能会被投票结束,但任何见解都会有所帮助。
答案 0 :(得分:1)
使用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编程的基础知识。