这些问题上有很多问题,但我很难将它们应用到我的场景中。任何帮助将不胜感激!
我们目前在网站上托管了一个正常运行的mySQL数据库,从网站输入数据,然后通过PHP将数据放入数据库。
同时我们想要创建一个脱机工作的python应用程序。它应该执行与Web版本相同的所有功能并完全在本地运行,这意味着它需要整个数据库的副本才能在本地运行,并且当对这样的本地数据库进行更改时,它们会在下次有Internet连接时同步
首先,我不知道离线运行这样一个数据库的最佳方法是什么。我正在考虑设置一个本地主机,但是这需要可以分发给许多机器。因此,通过某种安装程序设置本地主机可能是不切实际的吗?
其次同步?不知道如何解决这个问题!
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
要将Python绑定到MySql,您可以使用HTSQL:
然后,您还可以通过来自AJAX呼叫或服务器端的http请求查询您的MySQL数据库,例如: cURL(当然还可以选择编写标准SQL查询)。
有一个名为HTRAF的JQuery插件,用于处理客户端对HTSQL服务器的AJAX调用。
HTSQL服务器也在localhost上运行。
你会使用什么操作系统?
答案 1 :(得分:0)
您打算在本地python离线应用上运行mysql吗?我会建议像sqlite这样的东西。至于保持同步,它还取决于需要同步的数据类型。需要回答的一个问题是:
这些python应用程序生成的数据是否有点混乱?如果是(即它与其他实体没有任何关系),那么您可以在本地对数据进行排队并将其推送到集中托管的网站。
答案 2 :(得分:0)
您的本地应用程序需要具备多高性能?此外,本地可用的互联网连接有多可靠?如果您不需要极高的性能,为什么不将数据留在远程MySQL服务器中?
如果您确定需要访问本地数据,我会查看MySQL的内置复制以进行同步。设置/使用非常简单,您可以使用它来维护远程数据库的本地只读副本,以便快速访问数据。您只需在应用程序中构建在远程服务器上执行写查询的功能,并对本地数据库执行读取查询。两台服务器之间的延迟时间通常非常短......就像毫秒级......但是你仍然需要应对网络拥塞,以防止本地从属数据库瞬间与主服务器完全同步。 / p>
至于python方面,谷歌 mysql-python 因为你需要一个python mysql绑定来使用MySQL数据库。最后,我强烈推荐SQLalchemy作为一个带有python的ORM,因为它会让你的生活变得更容易。
我想说一个理想的解决方案是设置一个远程REST API Web服务,并使用它来代替直接访问数据库。当然,你可能没有内部能力,时间或倾向于这样做......这也没关系:)