Nodejs Server,使用Ajax从html客户端获取Python的JSON数据

时间:2015-02-23 17:06:21

标签: python ajax json node.js

我需要在Ajax的帮助下在我的html页面中获取数据(json)。我有一个服务请求的Nodejs服务器。 我必须从服务器获取json,这是一个python代码来处理并生成json作为输出。

  • 我应该在db中保存json并访问它吗? (一次使用似乎很复杂)
  • 我应该运行python服务器,以json作为结果提供请求(通过ajax从html直接调用)
  • 我应该通过从nodejs调用python方法来单独使用nodejs来处理请求吗?如果是这样,如何调用python方法。 如果调用python需要它运行服务器?哪一个更喜欢(zeropc,或某种网络框架?)

哪种解决方案最好?或者哪种情况比其他情况更受欢迎?哪些因素?

2 个答案:

答案 0 :(得分:0)

据我所知:

您正在运行服务器

  • 一个充当网络服务器的应用程序,由nodejs制作。
  • python中的另一个不暴露HTTP API的应用程序,但你想以某种方式与它进行交互?
  • 您可以控制两者的源代码

当运行具有不同语言编程的部件的大型系统时,它们有很多方法可以使它们一起工作。

选择权归你所有,你给我们提供的信息很少,可以帮助你决定哪种方式更好。这一切都取决于你的python和nodejs应用程序有多大,以及它们的作用。

没有神奇的方法可以从nodejs调用python方法,反之亦然

  • 生成持久化进程,并使它们与套接字或管道进行通信。通常,这是通过启用库(如ZeroMQ +序列化/ RPC格式)来完成的。

  • 生成持久化进程并使它们与中间的消息队列进行通信(RabbitMQ,ActiveMQ,...)

  • 生成你的nodejs webserver,并使用“child_process”模块在python中生成一个进程,并通过它的标准输入/输出与它进行交互。有辅助库可以执行此操作:https://www.npmjs.com/package/python-shell

  • 只需生成nodejs webserver并在需要时使用“child_process”执行python脚本(没有持久的python进程)。

  • 在python中重写所有内容

  • 在nodejs中重写所有内容

答案 1 :(得分:0)

在您的应用程序中,如果您需要在nodejs应用程序中处理python服务器请求的结果,那么您需要使用request libray在nodejs app中调用python服务器请求,然后处理结果。否则,您应该通过客户端ajax请求调用python服务器资源。

谢谢