如何使用Python实时显示网页动态数据?

时间:2015-02-28 21:09:23

标签: python html5 css3 python-3.x

我正在使用HTML和CSS为Python程序制作GUI前端(类似于使用Web浏览器配置路由器的方式)。程序将用户给出的值分配给变量,并使用这些变量执行计算,输出结果。我有一些障碍可以解决:

  1. 如何设计应用程序以便实时更新数据? I.e。用户无需点击"计算"按钮也不刷新页面以获得结果。如果用户更改了字段中的值,则所有其他字段都会同时更新,等等。

  2. 如何从互联网上的任意位置获取变量的值,并且如果/何时在源上更新,还会不断更新?一些变量在该计划基于当前的市场条件(例如当前的黄金价格)。我希望在从某些来源检索这些值后自动输入这些值,我们假设它们没有API。

  3. 如何构建通过HTML和CSS显示的应用程序?考虑到Python不能像PHP一样实现,我正在寻找一种方法来弥补差距"在HTML和Python之间,没有这样的"重"像Django这样的框架,以便我可以在服务器端为网页运行Python代码。

  4. 我一直在研究这个问题很长一段时间了,并且已经发现了各种各样的解决方案,或者几乎是解决方案但不完全解决方案。我无法专门为我的应用选择我需要的东西。这些是我最好的发现:

    Werkzeug - 我相信Werkzeug是我发现将应用程序与HTML和Python结合在一起的最佳线索。我只是想让我放心,我正在理解它是什么,事实上,这是我想要做的事情的解决方案。

    WebSockets - 为了显示来自任意网站的实时数据,我相信我可以使用此协议。但我不确定如何在实践中实现这一点。即我不明白如何定位值,然后不断将其发送到我的应用程序。我相信这叫做刮刮?

2 个答案:

答案 0 :(得分:1)

问题1。  为此你需要javascript,javascript用于向网站添加行为。我建议使用一个名为Jquery的javascript框架。

您可以通过将html“id”或“class”添加到具有您希望从用户接收的值的输入中,并将“id”添加到您将显示这些计算结果的字段中。

你会创建一个javascript事件,它基本上跟踪任何具有你用于上面输入的类的html对象被更改,当你发生这种情况时你进行计算,然后将结果发布到你决定的结果字段上,使用它“id”标识符。 请查看this link以获取更多信息

问题2。  为此,您必须执行所谓的“Web抓取”:首先,您要阅读要从中获取信息的页面的html源代码,并查看要从中获取信息的HTML对象的ID(如果它没有ID,你必须查看它的层次结构(也称为文档对象模型DOM),查看它内部的对象然后你创建一个读取HTML和查找该ID或跟随您发现的层次结构并读取该HTML对象中的文本。请记住,HTML只是文本。

我更习惯Ruby编程语言,在ruby中有一个你为它下载的模块,但我确信有一个名为“Mechanize”的Python。

问题3.您可以使用Flask这是一个简单易用的python Python微框架,根据您描述的需求,听起来非常合适。

答案 1 :(得分:0)

要实现您的目标,您需要具备良好的javascript知识,即动态网页的语言。您应该熟悉动态Web技术,AJAX,DOM,JSON。所以主要部分是在浏览器方面。实际上任何python web服务器都适合。为了“弥合差距”,关键字是模板。 python有很多,所以你可以选择哪一套最适合你。像django这样的一些框架带来了他们自己的模板引擎。 对于您的第二个问题:当一个网站不提供API时,也许该网站的所有者不希望他的数据被其他人滥用。