我一直在构建业务数据库应用程序,例如财务、库存和其他业务需求应用程序。我打算转向 Python。最好的工具是什么。我需要做主、交易表格、处理(后端)、报告和诸如此类的事情。数据库将是 postgress 或 mysql。由于我是 Python 新手,我知道除了 Python 之外我还需要 ORM 和框架。我的应用程序与网站无关,但如果需要,也可能需要通过网络完成。
如何选择工具组合的初始设置?
如果我是你,我可能会先看看基于 Django 的基于 Web 的解决方案是否能解决问题。如果您需要更好的外观和感觉,请将 jQuery 添加到组合中。如果它提供的功能太少,请选择 PyQt。如果您有很多非常小的应用程序,请选择多种技术。下面,您会找到我(有些冗长)对此建议的推理。
Webapp 与桌面应用程序
一年前,我们有一个业务数据库,需要一个前端。我们必须决定前端使用什么技术。我们考虑过:
从我们的角度来看,PyQt 的优势:
然而,我们决定不使用 PyQt,而是使用基于 Web 的解决方案。原因是:
简而言之:在受控部署环境中具有大量功能的功能丰富的前端可能更容易使用 Qt 实现。对于我们的轻量级前端,基于服务器的解决方案对我们来说似乎更好。
哪个网络框架?
既然我们已经决定了一种技术,我们就必须选择一个框架。我们进行了一些研究,并详细研究了两种选择:
我们评估了这两种选择,最后选择了第二种。这个决定是由我们真正的“轻量级”前端需求(许多非常小的应用程序)驱动的。一堆软件——我们可以根据需要混合和匹配——对我们来说似乎更好。我们可以在不需要 Web 前端的情况下重用 SQLAlchemy,我们可以在没有模板库和 ORM 的情况下使用 CherryPy,等等。然而,在许多其他情况下,我会选择 Django 而不是这个堆栈。
总结一下:
如果我是你,我会从django开始。
如果您的应用程序将来需要在桌面和 Web 上运行,您可以考虑使用可分发服务器创建基于 Web 的应用程序。这些事情很容易用 Python 以简单的方式和更强大的方式(例如使用 Twisted)来完成。
如果仅桌面是您的方向,那么确实正如 Alex 所说 - 选择 PyQt。它非常易于使用,并通过多种数据库绑定提供了非常强大的 GUI 功能。
至于数据库——你习惯使用哪一个?例如,如果您是 MySQL 专家,那么首先检查一下 Python 的 MySQL 绑定是明智的。对于 ORM,绝对可以尝试 SQLAlchemy。
也许问题中的更多细节可以帮助提供更完整的答案。
更多细节(供您评论):
如果 PostgreSQL 是您的方向,那么 Python 将PyGreSQL作为绑定。它是开源的,就像 Python 本身一样,所以你应该对用户免费的应用程序没有任何问题。至于 Python 是正确的选择,我认为是。考虑到许多强大的网站都运行 Python(YouTube、Reddit,甚至某些应用程序的 Google)。Python 还用于几个大容量应用程序,例如源代码控制系统 Mercurial 和 Bazaar,以及邮件列表管理器 mailman。
仅供参考,对于 PyQT,这本书有第 15 章的数据库,看起来不错。这本书有一些数据和视图等。我读过它,我认为这很值得你花时间:)
由于我不喜欢任何可用的框架,我决定自己写一些东西。也许你想看看Pylax。它内置于 GTK 中,并使用嵌入式 Python 编写脚本。目前,后端是 SQLite。