QtSql vs MySQLdb vs SQLAlchemy

2024-04-19 11:58:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个PyQt程序,它将很快从xml类型的后端切换到托管在本地MySQL服务器上的后端。我一直在试着读这三种选择中的每一种,但我认为最好还是问问诸神。在

我目前在MySQLdb中使用MySQLdb执行MySQL的经验主要是因为我不知道其他两种方法的存在性。简而言之,这两种方法的优缺点是什么?你会选择哪一种?干杯!在


Tags: 方法程序服务器类型mysql经验xmlpyqt
2条回答

我不是上帝,但我有一些意见。我在Python中使用SQL的主要经验是使用Django。在

解决方案取决于你愿意承诺什么。如果您想坚持使用Qt库而只使用PyQt库,那么就使用QtSql。如果您只想快速构建应用程序,但又引入一些依赖项,那么我将使用SQLAlchemy。您可能会遇到一些问题,如asker of this question,然后您需要引入更多库或拔出您的头发。在

所以,以一种很好的列表方式:

MySQLdb公司

  • 专业版:纯SQL
  • 缺点:丑陋
  • 缺点:需要您编写SQL
  • 缺点:需要你管理光标,不做任何缓存,参数化等。。。在
  • 缺点:在不重写所有数据库代码的情况下,无法切换到其他数据库后端

结论:不要将此用于您将投入生产的任何东西

QtSQL

  • 优点:只使用Qt库
  • pro:将返回Qt对象,因此它将与Qt的标准小部件集成
  • pro:可以使用Qt支持的任何数据库后端
  • 缺点:仍然需要编写SQL

结论:如果您想编写更少的UI代码和更多的数据库代码,请选择此选项

SQL炼金术

  • 优点:所有数据库逻辑都可以用Python代码编写(因为它是一个ORM)
  • 支持多种数据库后端
  • 缺点:可能需要一些额外的配置才能让Qt正常工作

结论:如果您想编写更少的数据库代码,并且可以解决一些API问题,请选择此选项。在


另外,不要担心性能,因为任何选择都应该是大致相等的,而且大部分时间都将花在I/O上

我知道有点晚了,但我建议你看看Camelot(http://www.python-camelot.com/)。它将PyQt和SQLAlchemy集成在一起,因此您可以编写更少的UI代码和数据库代码。在

相关问题 更多 >