是json的答案:python程序会说话,javascript会听吗?

时间:2011-02-26 17:18:14

标签: javascript python json

一个月前困扰我的同样问题现在仍然困扰着我。我知道我在这个网站上询问了几个有关此事的问题,我真的很抱歉。你的建议都非常好,但答案仍然是难以捉摸的。我现在意识到这是我无法正确表达我的问题的直接结果,因为我很抱歉。

给你们一个关于事物的概括视图,我在这里:情况是这样的,我有2个服务器端脚本,我想运行。

  1. python程序/脚本,不断喷出一些数字

  2. 根据该python脚本的输出,javascript脚本将在网页上执行某些操作(例如,更改背景颜色,显示警告消息,更改一些文本)

  3. 我研究了对我以前帖子的回复,并发现我想要完成的事情或多或少都是由json完成的。据我所知,json将“程序特定”变量转换为更“标准或一般或全局”的格式。 因此,现在有两种不同的程序可以相互“交谈”,因为它们现在使用相同的“语言”。

    那么问题是,我如何真正促进他们的沟通?这些服务器端脚本之间的“手机”是什么?他们甚至需要一个吗?

    谢谢你!

5 个答案:

答案 0 :(得分:2)

如果我理解你在问什么,那么“手机”就是TCP / IP。 javascript不是服务器端;它在客户端运行,并根据从服务器下载的json数据改变客户端浏览器显示的内容 - 在这种情况下由Python生成的数据。

这个问题提供了一个相关的例子,虽然它有点技术性:JSON datetime between Python and JavaScript

这是一个非常基本的教程,解释了如何使用python和javascript创建动态网页。它似乎没有使用json,但它应该让你熟悉基础知识。一旦你理解了那里的东西,使用json传输更复杂的数据应该是相当简单的。

http://kooneiform.wordpress.com/2010/02/28/python-and-ajax-for-beginners-with-webpy-and-jquery/

答案 1 :(得分:1)

我认为你的意思是:Python在Web服务器上,而Javascript正在客户端的Web浏览器中运行。

因为浏览器各不相同(IE6很糟糕,Chrome很棒),人们发现有很多方法可以“破解”这个“手机”。这些技术称为AJAX和COMET技术。没有一个“手机”,但其中有一大堆!希望你能找到一个库来为浏览器选择合适的技术,你只需要担心这些消息。

Comet更难做,但让服务器将“推送”消息发送给客户端。

Ajax可以更容易 - 您只需定期从服务器“拉”消息。

从Ajax开始,然后看看彗星是否真的需要它。首先让客户端(javascript)发出“GET”请求,看看号码是否已经改变。

答案 2 :(得分:0)

我不知道Javascript或json,但...... 如果你曾经见过类似Unix的操作系统,你就会知道管道。喜欢program1 | program2 | program3 ...为什么不用管道连接Python和Javascript程序?第一个写入stdout,下一个写入stdin。

答案 3 :(得分:0)

这可能不是您正在寻找的答案,如果没有链接到您以前的帖子,我没有太多可以继续,但仍然......

javascript是客户端。我可以用两种不同的方式解释你的问题...

  1. 您的python脚本正在您的计算机上运行,​​您希望脚本实际更改当前的浏览器窗口。

    不太确定,但编写浏览器插件可能就是答案。

  2. 您的python脚本正在服务器上运行,并且由于脚本正在运行,您希望更改站点的显示以便查看人员。

    在这种情况下,您可以在您的网站上使用ajax轮询(或类似)。让您的站点使用ajax轮询服务器,调用检查脚本输出的服务器方法(可能写入文件?),看看它是否已更改。

答案 4 :(得分:0)

当2个流程需要沟通时,他们需要决定表达事物的共同/共享方式以及交换这些事物的协议。

在您的情况下,由于其中一个进程是浏览器,因此选择的协议是http。因此浏览器需要对您的python进程执行http请求或常规http请求。

这个python进程需要以某种方式通过http。

公开

有几种方法可以在python中构建Web服务器。你应该阅读这篇文章:http://fragments.turtlemeat.com/pythonwebserver.php作为一个快速启动。

完成此操作后,您的浏览器将能够向您的服务器发出HTTP GET请求,您的服务器可以使用字符串进行回复。

这个字符串可以是你喜欢的任何东西。然而,如果你的答案包含结构化数据,那么使用XML表示法或json表示法是一个很好的开始。

Json(代表Javascript对象表示法)在javascript中非常容易使用,这就是为什么许多人建议你选择这种表示法。

我希望这会对你有所帮助

Jéromewagner