Login
网站首页 > 文章中心 > 其它

PyQt5连接MySQL及QMYSQL_driver_not_loaded错误解决

作者:小编 更新时间:2023-08-16 14:21:08 浏览量:403人看过

1. 安装MySQL驱动

执行以下命令进行安装:


pip install pymysql


或者使用以下命令安装预编译的二进制文件:


pip install PyQt5-sip
pip install PyQt5
pip install PyQt5-stubs


2. 解决QMYSQL driver not loaded错误

如果你已经使用了PyMySQL并且在连接MySQL时遇到了QMYSQL driver not loaded的错误,那么你需要按照以下步骤进行解决.

步骤一:获取QMYSQL driver

该driver可以在Qt安装目录下的plugins/sqldrivers文件夹中找到.

步骤二:在程序中添加QMYSQL driver的路径


import os
import PyQt⑤QtSql

# 添加QMYSQL driver的路径
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = r'C:\path\to\qt\plugins\sqldrivers'

# 创建数据库连接
db = PyQt⑤QtSql.QSqlDatabase.addDatabase('QMYSQL')


示例说明

这里给出两个示例:

示例一:连接MySQL并执行SQL语句

以下代码展示了如何连接MySQL并执行一条SQL语句:


import os
import PyQt⑤QtSql

# 添加QMYSQL driver的路径
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = r'C:\path\to\qt\plugins\sqldrivers'

# 创建数据库连接
db = PyQt⑤QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('mydatabase')
db.setUserName('myusername')
db.setPassword('mypassword')
if db.open():
query = PyQt⑤QtSql.QSqlQuery()
query.exec_("SELECT * FROM mytable")
while query.next():
    print(query.value('id'))
    print(query.value('name'))
else:
print(db.lastError().text())


示例二:使用QSqlTableModel操作MySQL表格

以下代码展示了如何使用QSqlTableModel进行MySQL表格操作:


import os
import PyQt⑤QtSql
from PyQt⑤QtWidgets import QApplication, QTableView

# 添加QMYSQL driver的路径
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = r'C:\path\to\qt\plugins\sqldrivers'

# 创建数据库连接
db = PyQt⑤QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('mydatabase')
db.setUserName('myusername')
db.setPassword('mypassword')

# 创建数据模型
model = PyQt⑤QtSql.QSqlTableModel()
model.setTable('mytable')

if db.open():
model.setEditStrategy(PyQt⑤QtSql.QSqlTableModel.OnFieldChange)
model.select()

# 创建界面并设置数据模型
app = QApplication([])
view = QTableView()
view.setModel(model)
view.show()

app.exec_()
else:
print(db.lastError().text())


以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章