桥接Python后端和JavaScript前端

时间:2017-08-08 21:08:49

标签: javascript python

我目前正在开展一个项目,该项目涉及通过用户提供的文件进行解析,使用该数据进行计算,以及使用图形工具实现结果的可视化。现在,我一直坚持使用Python作为后端,因为它在JavaScript中没有科学库,但我想将整个工具移动到Web服务器,在那里我可以使用D3.js做更多的可视化。

工作流程类似于:从浏览器获取文件内容,使用内容执行Python脚本,返回计算值的jsonified对象,并使用D3 绘制这些对象。我已经有自己的后端和前端工作,但想知道:我怎样才能将这两者联系起来?从我收集的内容来看,我需要做点什么沿着启动服务器,向服务器发送AJAX请求以及从服务器检索数据的方式。但是由于框架的数量(Flask,cgi,apache,websockets等),我不确定从哪里开始。这可能只是一个非常简单的Web应用程序,只有一个文件提交页面和一个数据可视化页面。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:5)

Apache是​​一个Web服务器,flask是python中的web框架,websockets是一个协议,cgi是完全不同的东西,它们都没有帮助你在前端。

你可以在flask或django或pylons或任何其他python web框架中部署一个简单的后端。我喜欢django,但它可能有点重,你的目的,烧瓶更轻一点。您将它们部署到安装了Web服务器的服务器,并使用apache之类的东西进行分发。

然后你需要一个前端和一个提供前端的方法。 Flask / Django完全能够与Web服务器一起完成,或者您可以使用像Amazon S3这样的静态文件服务器。

在你的前端,你需要加载D3并且可能需要加载某种实用程序(如jQuery)来加载和解析后端的数据,然后使用D3然后你想在屏幕上显示它。

答案 1 :(得分:4)

Flask易于启动和运行,并且基于Python。它适用于REST API和JSON(或JSON API)发送的数据。

这是一个解决方案,我有一些经验,似乎运行良好,并不难起床和运行(并自然地使用Python)。我不能告诉你它是否是满足你需求的最佳解决方案,但它应该有效。

如果你不知所措并且不知道从哪里开始,你可以选择其中一个选项并谷歌搜索一个教程。通过一个体面的教程,您应该在本教程结束时准备好一个示例,然后您将知道您是否愿意使用它并了解它是否能满足您的需求。

然后你可以做一个概念验证;制作一个小应用程序,它只处理一个小部分(也许是你最关心处理的部分)并编写一些可以做到的东西。

到那时,你可以非常确定你有一个很好的工具用于此目的(除非你被概念证明说服了 - 在这种情况下,再试一次: - ))