2011-04-14 72 views
2

我想要一个基于桌面的程序,可以从基于Web的API(如Google Analytics,SEOMoz和其他类似服务)检索信息,客户端的请求非常随意。然后他们希望部分或全部这些结果存储在中央位置。他们表示,他们根本不需要Web应用程序,但他们确实希望能够将数据存储在局域网上的“服务器”(读取服务器版桌面客户端)上。该程序应该能够在Windows上运行。 Linux和OS X支持将会很好。使用Web API的Python桌面程序

我有一些编程经验,并且对Python非常熟悉,所以我正在考虑使用它。我的问题是,我不确定LAN上的客户端/服务器之间的通信以及客户端和基于Web的API之间的通信。

1)这可能吗?如果是这样,那么寻找API集成和网络通信资源的好地方/有什么好的例子呢?

2)关于要注意什么(例如常见错误,主要安全问题)的任何建议/提示?

3)任何方式会比我上面概述的更好?

4)数据库,有什么好的选择?我希望尽可能使其尽可能独立,并且或多或少具有独立性(依靠最少量的已安装软件)。

感谢您的任何和所有的投入!

回答

1
  1. 是的,urllib,urllib2和urlparse是读取到/从URL的核心Python库。我建议使用PyQt作为GUI框架(pyGTK,wxWidgets和tkinter也可以,它们在你提到的三个OS上运行都很好)。 PyQt包含您需要的所有内容,而不会涉及任何其他库。它包括网络访问控制,用于URL解析和构建的QUrl以及用于显示数据的大量GUI工具。

  2. 没什么出常态的,不同之处见[1]在4

  3. 看到1约PyQt的。但是你最终要做的是制作你想访问的URL(包括所有获取/发布参数),发送数据,监听数据,解析数据,放入数据库。客户端只需查询数据库,获取结果,过滤/订购/管理将在gui代码中完成。 QtDeclarative可能是允许用户创建自己的查询的好选择(思考但尚未实现),您也可以执行它。我会建议postgres,mysql或任何数据库,关系或不(看到mongodb,但不认为PyQt支持它,但你可以用pyqt很好地使用任何python库)。然后,您可以将数据存储在那里,让客户端查询它,并让客户端坐在服务器上,它具有额外的功能来查询网站并插入数据。尽管这可能更适合用作获取数据并插入数据的cli工具数据库(所以你可以运行它如果想要的cron作业)。

您只需要开发客户端代码和数据库模式。 [1]记住db的可以有多个客户端,并且用户可以直接连接到数据库服务器。唯一需要注意的是将服务器配置为仅侦听lan以接收客户端,并且用户权限设置正确。这与连接一个Web应用程序到数据库只是在美观上不同。您只是授予更多用户和客户访问权限。

你最大的问题应该搞清楚如何处理GUI编程的沉闷:P

+0

谢谢!这看起来足以至少将我指向正确的方向,而这正是我所需要的。 – David 2011-04-16 15:44:39

相关问题