python pyqt5 pymysql连接mysql数据库(简单便捷)

本文中,使用到的工具有:Pycharm,MySQL 8.0.14

什么是 PyMySQL?
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。

一、环境准备
1、安装pymysql:
进行Python连接mysql数据库之前,需要先安装一下pymysql。

直接在终端执行下面的命令即可。(在此处我将指定1.0.3版本)

pip install pymysql==1.0.3
2、查询安装:

下载完成后,在终端输入 pip list 即可看到下图:

pip list

可以看到我们的PyMySQL是1.0.2版本的。

二、代码编写,连接数据库

创建文件DBManager.py

#!/usr/bin/python3
from PyQt5.QtSql import QSqlQuery, QSqlDatabase, QSqlQueryModel
import pymysql
from pymysql import cursors


class DBManager():
    def __init__(self, conname='default', hostname='127.0.0.1', port='3306', user='root', password='123456'):
        self.conname = conname
        self.hostname = hostname
        if port == '':
            port = 3306
        self.port = int(port)
        self.user = user
        self.password = password

        if (QSqlDatabase.contains(self.conname)):
            self.db = QSqlDatabase.database(self.conname)
        else:
            self.db = QSqlDatabase.addDatabase("QMYSQL", self.conname)
        self.query = QSqlQuery(self.db)

    # 测试数据库链接是否成功
    # if error == 'QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7':
    # ldd /home/ji/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/sqldrivers/libqsqlmysql.so
    #     sudo apt-get install libmysqlclient18
    def testConnect(self):
        if (self.openDB()):
            re = "Success"
        else:
            re = "Failed !\n"
            re += self.db.lastError().text()
        return re

    def openDB(self):
        try:
            self.db = pymysql.connect(
                host=self.hostname,
                user=self.user,
                password=self.password,
                # database=self.database,
                port=self.port,
                charset='utf8',
                autocommit=True
            )
            return True
        except Exception as e:
            print("Error:", e)

    # 使用此数据库连接返回json格式数据
    def openDB_json(self):
        self.db = pymysql.connect(
            host=self.hostname,
            user=self.user,
            password=self.password,
            # database=self.database,
            port=self.port,
            charset='utf8',
            cursorclass=cursors.DictCursor,
            autocommit=True
        )
        return True

    def closeDB(self):
        if (self.db.isOpen()):
            self.db.close()

    def showDBs(self):
        databases_list = []
        self.openDB()
        cur = self.db.cursor()
        cur.execute("show databases")
        re = cur.fetchall()
        for i in range(len(re)):
            databases_list.append(re[i][0])

        return databases_list

    def getDBList(self, table, header, where='1=1', page=1, pagesize=100):
        self.openDB_json()
        cur = self.db.cursor(pymysql.cursors.DictCursor)
        cur.execute('select * from information_schema.%s where %s limit %s , %s' % (
        table, where, (page - 1) * pagesize, pagesize))
        # cur.execute('select * from information_schema.%s where %s limit 3' % (table,where))
        re = cur.fetchall()

        print(re)
        return re

    def get_Table_Data(self, database, table):
        self.openDB_json()
        cur = self.db.cursor(pymysql.cursors.DictCursor)
        sql = '''
select * 
from `''' + database + '`.`' + table + '''`
limit 100
        '''
        print(sql)
        cur.execute(sql)
        re = cur.fetchall()

        return re


if __name__ == "__main__":
    my_db = DBManager();
    my_db.testConnect()
    re = my_db.showDBs()
    print(re)
    my_db.closeDB()

1.可直接在Pycharm编辑器上点运行获得以下结果

2.cmd下执行 python d:\python\DBManager.py

执行结果:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 PyQt5 中链接 MySQL 数据库,需要使用 PythonMySQL Connector 模块。可以通过以下步骤实现: 1. 安装 MySQL Connector 模块 可以在终端中使用以下命令安装: ``` pip install mysql-connector-python ``` 2. 导入模块 在 PyQt5 中导入 MySQL Connector 模块: ```python import mysql.connector ``` 3. 创建数据库连接 使用以下代码创建 MySQL 数据库连接: ```python mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) ``` 其中,“host”是 MySQL 服务器地址,“user”和“password”是数据库的用户名和密码,“database”是要连接数据库名称。 4. 执行 SQL 查询 可以使用以下代码执行 SQL 查询: ```python mycursor = mydb.cursor() mycursor.execute("SELECT * FROM yourtable") myresult = mycursor.fetchall() for x in myresult: print(x) ``` 其中,“yourtable”是你要查询的表名。 完整的示例代码如下: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout import mysql.connector class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建数据库连接 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) mycursor = mydb.cursor() # 执行 SQL 查询 mycursor.execute("SELECT * FROM yourtable") myresult = mycursor.fetchall() # 显示查询结果 vbox = QVBoxLayout() for x in myresult: label = QLabel(str(x)) vbox.addWidget(label) self.setLayout(vbox) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('MySQL Example') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 记得将“yourusername”、“yourpassword”、“yourdatabase”和“yourtable”替换为你自己的数据库信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值