经过大量的研究和调查,我决定使用Eric5作为编辑器,使用pyQT4进行Python开发。但是,我试图让MySQL工作,我遇到了一堵砖墙。看来QMySQL驱动程序存在问题。从我到目前为止看到的讨论中,唯一的解决方法是安装pyQT SDK然后重新编译MySQL驱动程序。一个痛苦的过程,我真的不想要经历。我实际上更喜欢使用MS SQL,但我没有找到任何支持MSSQL的pyQT驱动程序。
所以,我的问题是:将pyQT与mySQL或MSSQL一起使用的最佳方法是什么?实际上有效吗?
在等待答案时,我可能只是修改SQLAlchemy和mySQL.Connector,看看它是否会与pyQT共存。
答案 0 :(得分:3)
如果您更喜欢使用MS SQL,那么在PyQt中使用QSqlDatabase和ODBC驱动程序非常容易。
以下是我正在使用MS SQL的项目的摘录。
db = QSqlDatabase.addDatabase('QODBC')
#TODO: Add support for trusted connections.
#("Driver={SQLServer};Server=Your_Server_Name;Database=Your_Database_Name;Trusted_Connection=yes;")
db.setDatabaseName('DRIVER={SQL Server};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s;'
% (hostname,
databasename,
username,
password))
db.open()
显然,您需要设置主机名,数据库名,用户名和密码变量。注释掉的行显示了Trusted Connections的连接字符串;不是我实际需要尝试的东西,但如果这就是你需要的东西它应该有效。
打开数据库后,可以像使用MySql和PyQt驱动程序一样使用QSqlQuery。
答案 1 :(得分:1)
是的,这将起作用,我做同样的事情。我喜欢编程API,就像SQLAlchemy在Qt的QtSql模块的Raw SQL版本上提供的那样。它工作正常,很好,只需使用sqlalchemy查询中的数据填充子类QAbstractTableModel,就像使用来自任何其他python对象的数据一样。这虽然意味着您正在处理缓存和数据库查询,但却失去了QtSqlTableModel的优点。但不应该太糟糕。
答案 2 :(得分:0)
即使QT提供GUI,您也可以考虑使用pyodbc来实现数据库连接。 Pyodbc兼容MySQL和MS SQL Server。