博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-PyQt5+Mysql-数据交互,获取数据,并写入数据库,再并展示数据(四)
阅读量:3958 次
发布时间:2019-05-24

本文共 2821 字,大约阅读时间需要 9 分钟。

在这里我们基于的学习,我们搭建好PyQt5的基础环境,这里我们将进行制作一个简单的软件-----数据写入展示

基础环境:

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

一、连接数据库

在这里我们需要安装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
    在这里插入图片描述
    在这里我们要给他赋予对象名称(自己根据驼峰命名法命名)

三、获取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)

五、总结

在这里插入图片描述

希望这篇博文对你有用!

谢谢点赞评论!

转载地址:http://jmlzi.baihongyu.com/

你可能感兴趣的文章
POJ2892,Tunnel Warfare(线段树维护连续区间)
查看>>
POJ3468,A Simple Problem with Integers(线段树-区间查询-区间更新)
查看>>
杭电ACM——6463(思维)
查看>>
杭电ACM——1061,Rightmost Digit(思维)
查看>>
杭电ACM——1087,Super Jumping! Jumping! Jumping!(DP)
查看>>
杭电ACM——fatmouse's speed(DP)
查看>>
杭电ACM——毛毛虫(DP)
查看>>
杭电ACM——humble numbers(DP)
查看>>
杭电ACM——6467,简单数学题(思维)
查看>>
杭电ACM——天上掉馅饼(DP)
查看>>
杭电ACM——1086,You can Solve a Geometry Problem too(思维)
查看>>
杭电ACM——2057,A + B Again(思维)
查看>>
codeforces——1097B,Petr and a Combination Lock(搜索)
查看>>
杭电ACM——2069,Coin Change(DP)
查看>>
杭电ACM——2110,Crisis of HDU(母函数)
查看>>
杭电AM——2152,Fruit(母函数)
查看>>
杭电ACM——2566,统计硬币(DP)
查看>>
堆栈(数据结构)
查看>>
队列(数据结构)
查看>>
Mule ESB-Basic Studio Tutorial
查看>>