3

我正在尝试开发一个 pythonPyQt程序,允许用户输入有关个人详细信息的数据并在以后查看它们以进行处理。

该程序将由少于 5 人同时使用。所以,我正在考虑使用Sqlite3数据库,因为我相信它应该能够应对这么多的流量。

我想到的框架是,客户将在每台机器上拥有自己的 python pyqt 程序副本。每当他们执行任何需要读取/写入数据的操作时,它将通过互联网连接到服务器并从sqlite.db服务器上读取/写入。

基本上,服务器只是一个远程数据存储。

目前,我可以通过使用各种小部件(如、等)来创建所需GUI的数据输入。QlineEditQComboboxQTextEdit

但是我以前从未做过网络编程,因此我不知道如何实现一个服务器来存储我的软件的 sqlite 数据文件。所以我的问题是

(1) 如果我有一台具有 24/7 互联网连接的 PC,我该如何设置它以便它可以充当存储我的软件数据文件的服务器?

(2)我的程序可以/应该以什么方式通过互联网与该服务器通信。

即使您不能给我确切的答案,如果您能提供一些信息,我将不胜感激,以便我查找和研究它。

任何建设性的建议将不胜感激。

仅供参考:所有 PC 都将运行 windows XP SP3 32 位。

4

1 回答 1

1

客户端与服务器通信有不同的方式。

您可以使用

  1. XMLRPC使用在服务器端调用的方法创建对象

  2. 您可以将 HTTP 和REST用于带有库请求的服务器或 urllib用于客户端

  3. 对于后者,您可以使用 flask、bottle、django 或其他框架来创建一个提供内容的网站 (教程)

  4. 您可以使用Pyro远程访问服务器上的对象。如果客户端也应该相互通信,这很有用。

  5. 您可以创建自己的协议。您将学到很多东西并重视其他选择。

  6. 清单不完整

如果合适的话,我建议你看看 XMLRPC。对于第 2 点,我可以说许多 API 使用这样的 HTTP 接口(twitter、github、facebook、google)。其他人也很容易使用。

安全很重要。我不是专家。如果您以纯文本形式发送用户名和密码,则使用 SSL 加密连接。如果你不能让 ssl 与 python 一起工作,你可以使用stunnel

于 2014-02-08T09:31:23.460 回答