从python程序接收数据,为网页上的对象设置动画

时间:2011-02-12 16:01:27

标签: python html

美好的一天stackoverflow! 我不确定你是否有人试过这个但基本上我想要完成这样的事情: - 一个python程序不断向我的网站发送数据 - 使用该数据计算并在网站上的图像是有生命的

所以我的问题是: 1.我应该用什么方法将python与网站进行通信?越简单越简单(尝试阅读django和我的鼻子流血) 2. javascript是移动图像的最佳方式吗?还是闪光更好? 3.如果flash更好,是否可以使用python的输入并将其传递给flash?

2 个答案:

答案 0 :(得分:0)

图片未在“您的网站上”显示,它们会显示在“您用户的浏览器中”。

浏览器需要从您的网站请求动画信息,该网站需要从(无论它来自何处)请求它。理想情况下,网站将缓存数据,以便20个浏览器请求只产生一个网站请求。

  • 此信息的实时性有多接近?
  • 它来自哪里?它是一种可以在网络服务器上运行的服务吗?
  • 浏览器需要多久更新一次?

您应该查找有关AJAX的信息(让浏览器从网站发出异步请求)。

答案 1 :(得分:0)

基本上有两种方法可以做到。

  • 池化 - 简而言之,它归结为浏览器询问服务器“你有新的数据吗?”每时每刻。您可以使用Ajax执行此操作。所有市长JavaScript库都具有易于使用的Ajax功能。
  • 实时 - 使用JavaScript有两种方法可以做到这一点。 Comet方法通常意味着长池(您从Web服务器请求页面,而不是发送它并关闭连接,服务器不断发送数据,并且永远不会关闭连接)。这有点讨厌,但有效。另一种方法是使用HTML5 API WebSockets,它可以在浏览器和服务器之间打开真正的TCP连接,您可以通过它发送数据。

是的,你可以使用flash,它有类似WebSockets的东西。我认为它可能更强大,但不要引用我的话。但是你必须学习Flash并且可能在Flash中制作图像/动画。

使用哪一个?

HTML5之前的网络实际上并不打算实时连接,所以HTML5之前的所有方法都或多或少都是黑客攻击,有时很难处理,而且很可能会遇到性能损失。

如果你只是玩游戏,我会说WebSockets是你要走的路。你需要一个支持它们的现代浏览器。如果您需要支持旧浏览器,则必须使用其他方法。

Flash有效,但它需要插件,很可能无法在移动设备上运行。它也是您需要学习/支持的新语言。有些人可能会阻止它。

<强>的Python

如果您选择其中一种方法,只需谷歌即可添加python关键字。 Python有很多库。与示例相同。

最简单的实现可能是Ajax池化,因为您只是在请求网页。只需抓住一个简单的python web框架,如Bottle,你就可以立刻做好准备。

彗星也很容易,但是长时间保持连接打开以及多个连接时可能存在一些问题。你应该抓住其中一个Comet实现而不是试图自己解决这个问题。看看这个 - Python Comet Server

WebSockets和Flash将要求您在python中编写一个单独的服务器/脚本来提供数据。有一些在线可用,您只需插入逻辑。