本文根据一个项目实例,记录分享一下python将数据库的内容提取显示到程序界面的过程及相关设置,探索python操作数据库的用法。
主要分享内容:
1、显示数据库内容。
2、修改数据库内容。
3、表格控件指定滑块位置。
4、自定义右键菜单。
使用环境:python3.7 + Mysql5 +PyQt5
针对人群:初学者或有资料查阅需求者,资深人士勿喷,敬请提出宝贵意见,本人虚心接受。
前期准备
1、创建软件界面
上图为使用PyQt5相关模块创建的工程造价系统界面,使用的模块及功能:
1、QMainWindow模块:绘制带菜单、工具栏、状态栏的整体框架。
2、QTreeWidget模块:绘制左侧导航栏。
3、QTableWidgetItem模块:绘制中间用于显示数据的表格。
4、QComboBox, QPushButton模块:绘制下拉框、按钮控件。
5、QSplitter模块:设置各种控件的摆放组合方式,可鼠标拖动调整窗口大小。
6、QMessageBox模块:设置交互弹框。
具体界面绘制过程不是本文重点,暂不详述。
2、与数据库建立连接
要建立与数据库的连接,首先得有具体的数据库,本案例在本机用mysql建立自己的数据库,然后再与软件项目进行连接。
2.1、自建数据库
下载安装好Mysql后,建议再装一个可视化工具,我用的Navicat for Mysql,感觉不错。界面见下图:
在这个工具界面下,可以很方便的创建修改数据表。有了工具后,接下来就是关键的填入数据。很多时候,客户或者我们自己的数据是放在excel里的,我们可以通过Navicat 的导入向导,很方便的将excel数据导入到数据库:
跟着向导,只需简单几步就可完成数据导入。
2.2、连接数据库
导入pymysql库,将库的连接等功能写入自建的类。本案通过读取.cfg配置文件(有关配置文件的知识,可参见python开发项目,不得不了解的.cfg配置文件),获得连接库需用到的5个参数,在_init_初始类属性时,建立连接,代码如下:
import pymysql
from configparser import ConfigParser
class MysqlDb():
def __init__(self):
self.cp = ConfigParser()
self.cp.read('source/sql_config.cfg')
host = self.cp.get('sql_connect', 'host')
port = int(self.cp.get('sql_connect', 'port'))
user = self.cp.get('sql_connect', 'user')
passwd = self.cp.get('sql_connect', 'passwd')
db = self.cp.get('sql_connect', 'db')
self.conn = pymysql.connect(host=host,
port=port,
user=user,
passwd=passwd,
db=db)
self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
其中,sql_config.cfg文件内容为: