【问题标题】:Nodejs Server, get JSON data from Python in html client with AjaxNodejs 服务器,使用 Ajax 在 html 客户端中从 Python 获取 JSON 数据
【发布时间】:2015-04-25 02:23:03
【问题描述】:
我需要借助 Ajax 在我的 html 页面中获取数据 (json)。我有一个 Nodejs 服务器服务请求。
我必须从服务器获取 json,这是用于处理和生成 json 作为输出的 python 代码。
- 那么我应该将 json 保存在 db 中并访问它吗? (单次使用似乎很复杂)
- 我应该运行 python 服务器,以 json 作为结果来处理请求(通过 ajax 从 html 直接调用它)
- 我是否应该通过从 nodejs 调用 python 方法单独使用 nodejs 来处理请求?如果是这样如何调用python方法。
如果调用 python 需要它来运行服务器?更喜欢哪一个(zeropc,还是某种网络框架?)
最好的解决方案是什么?或者在什么场景和什么因素下哪个比其他更受欢迎?
【问题讨论】:
标签:
python
ajax
json
node.js
【解决方案1】:
据我了解:
你有一个服务器正在运行
- 一个充当网络服务器的应用程序,使用 nodejs 制作。
- python 中的另一个应用程序不公开 HTTP api,但您想以某种方式与之交互?
- 您可以控制两者的源代码
运行大型系统时,使用不同语言编写的部件可以通过多种方式协同工作。
选择权在您手中,您只需提供很少的信息来帮助您决定哪种方式更好。这完全取决于您的 python 和 nodejs 应用程序有多大,以及它们的作用。
从nodejs调用python方法没有神奇的方法,反之亦然
生成持久进程,并使它们与套接字或管道通信。通常这是通过启用库(如 ZeroMQ + 序列化/RPC 格式)来完成的。
生成持久进程并让它们与中间的消息队列进行通信(RabbitMQ、ActiveMQ、...)
生成您的 nodejs 网络服务器,并使用“child_process”模块在 python 中生成一个进程,并通过其标准输入/输出与其交互。有帮助库可以做到这一点:https://www.npmjs.com/package/python-shell
只需生成 nodejs 网络服务器并在需要时使用“child_process”执行 python 脚本(无持久性 python 进程)。
全部用python重写
全部用nodejs重写
【解决方案2】:
在你的应用程序中,如果你的nodejs应用程序中有python服务器请求处理结果的需求,那么你需要在nodejs应用程序中用requestlibray调用python服务器请求,然后处理结果。否则,您应该简单地通过客户端 ajax 请求调用 python 服务器资源。
谢谢