Python-PyQt5+Mysql-数据交互,获取数据,并写入数据库,再并展示数据(四)

在这里我们基于Python-Windows+Pycharm+PyQt5基础环境配置,1000%解决你的环境问题(一)的学习,我们搭建好PyQt5的基础环境,这里我们将进行制作一个简单的软件-----数据写入展示

基础环境:

  • Windows10
  • pycharm2019.3.4
  • python3.7.3
  • PyQt5
  • OpenCV4.5.1
  • Mysql5.7.5
    Python-PyQt5+Mysql-数据交互,获取数据,并写入数据库,再并展示数据(四)_第1张图片
    在经行软件设计的时候,数据的展示往往是最为重要的,因为数据是对图表最好的解释;
    文字描述、数据展示、数据变化(更新)是最为重要。
    下面将为大家分享数据交互,写入数据库的解析;

一、连接数据库

在这里我们需要安装MySQL的包

pip install pymysql -i https://pypi.doubanio.com/simple #加入豆瓣源

1、连接数据库,获取游标

"""
配置端口、用户名、主机、密码
"""
def get_conn():
    try:
        conn = mysql_conn.Connection(host='127.0.0.1',#主机
                                     user='root',#用户
                                     port=3306,#端口
                                     password='123456',#密码
                                     charset='utf8',#编码
                                     db='library'#数据库
                                     )
        return conn
    except mysql_conn.Error:
        print('连接错误')

2、关闭连接

def close_conn(conn,cursor):
    try:
        if cursor:
            cursor.close()
        if conn:
            conn.close()
    except Exception as s:
        print(s)
    finally:
        try:
            cursor.close()
        except:
            pass
        try:
            conn.close()
        except:
            pass

二、QT界面设计

在QT界面设计我们需要三个组件

  • Button
  • Line
  • table View
    Python-PyQt5+Mysql-数据交互,获取数据,并写入数据库,再并展示数据(四)_第2张图片
    在这里我们要给他赋予对象名称(自己根据驼峰命名法命名)

三、获取label标签数据,写入数据库

# 数据库处理---数据库操作   添加
    #1、添加类别
    def add_Tab2_LeiBie(self):
        #数据库操作流程
        #1、获取连接
        conn = get_conn()
        #2、获取cursor
        cur = conn.cursor()
        #3、sql语句
        sql = 'insert into 类别(leibie_name) values(%s)'#这里的类别是表,leibie_name是列名
        leibie_name = self.Tab2_LeiBie.text()#获取类别文本框信息
        #4、执行语句
        cur.execute(sql,(leibie_name))
        #5、insert,update,delete必须提交显示
        conn.commit()
        #6、关闭资源
        close_conn(conn,cur)

        #7、消息消息提示
        # 方法一、
        #self.statusBar().showMessage('添加成功')
        # 方法二、
        self.tishikuang()

        # 删除lineEdit内的内容
        self.Tab2_LeiBie.setClearButtonEnabled(True)#提示删除文本框内的内容

        self.show_Tab2_LeiBie()

四、查询数据,并展示

# 显示已有类别,并且添加网直接看见  查询
    def show_Tab2_LeiBie(self):
        conn = get_conn()
        cur = conn.cursor()
        sql = 'select leibie_name from 类别'
        cur.execute(sql)
        data = cur.fetchall()

        if data:
            """
            要获取当前表格部件中的行数,可以通过rowCount()方法获取,
            要设置表格部件的行数,可以通过setRowCount(int rows)调整表格的行数,
            如果参数rows小于现在表格中的实际行数,则表格中超出参数的行数数据会丢弃,
            就算是后面将行数或列数恢复也不能恢复相关数据
            """
            self.Tab2_LeiBieBiao.setRowCount(0)#获取行数
            self.Tab2_LeiBieBiao.insertRow(0)#插入o行
            for row,form in enumerate(data):
                for column,item in enumerate(form):
                    self.Tab2_LeiBieBiao.setItem(row,column,QTableWidgetItem(str(item)))#行,列,赋值
                    column += 1
                row_postition = self.Tab2_LeiBieBiao.rowCount()
                self.Tab2_LeiBieBiao.insertRow(row_postition)

五、总结

希望这篇博文对你有用!
谢谢点赞评论!

你可能感兴趣的:(PyQt5,数据库,mysql,python,pyqt5,qt)