python操作数据库项目实例分享
本文根据一个项目实例,记录分享一下python将数据库的内容提取显示到程序界面的过程及相关设置,探索python操作数据库的用法。主要分享内容:
- 1、显示数据库内容。
- 2、修改数据库内容。
- 3、表格控件指定滑块位置。
- 4、自定义右键菜单。
使用环境:python3.7 + Mysql5 +PyQt5
针对人群:初学者或有资料查阅需求者,资深人士勿喷,敬请提出宝贵意见,本人虚心接受。
1、创建软件界面
2、与数据库建立连接
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配置文件(有关配置文件的知识,可参见),获得连接库需用到的5个参数,在_init_初始类属性时,建立连接,代码如下:
其中,sql_config.cfg文件内容为:
若不用配置文件,直接把5个参数写在程序里也可以,代码如下,貌似更简单:
功能:在软件界面,点击左侧导航栏,找到数据库中与展开项对应的表,将数据显示在中间表格里。若目标表不存在,提示创建。
实现步骤:
创建导航栏; → 点击导航栏,获取表名; → 查询数据库,找到表,显示内容
具体过程:
1、用树形控件创建导航栏,数据来源为数据库
数据库里导航栏数据源样式为:
用代码手动逐条输入是不可接受的,根据第一列数据长度特点,采用下面的批量创建方式,其中fl为传递的参数,意思是“路基”或者其他专业。
2、设置点击树形控件条目的信号槽函数,将数据库表内容提取后显示在表格控件。
设置左键单击导航栏时,触发函数showtreesql()。具体获取数据功能在函数里设置。
3、读取数据库内容到表格的功能函数代码:
判断数据库是否存在某表的函数块:
4、左键双击导航栏时,触发信号槽,当不存在目标表时,提示创建新表:
1、设置保存按钮
2、编写保存按钮点击函数块
设置下拉框选择项目后,根据项目名让中间下部的表格上下滑块移动至将当前项目显示在第一位:
设置信号槽:self.decxcomb2.currentTextChanged[str].connect(self.set_table2)
设置功能块代码:
表格输入时,有时候难免存在需要插入行、删除行的要求,最常见的就是下面的右键菜单处理了。
实现过程:
1)设置表格控件能响应右键
2)设置右键信号槽函数
3)函数功能块设置
Access数据库窗体设计实例
在学习Access数据库窗体设计实例之前,我们先来看一下窗体中一些功能控件的使用:
创建一个空白窗体,进入设计视图,选择“窗体设计工具”下的“设计”选项,在“控件”区域中,找到“选项卡控件”图标:
然后将“选项卡控件”添加到空白窗体中,可以看到有两个页:
如果要添加一个页,可以右键点击进行“插入页”,如果要删除一个页,可以右键点击“删除页”即可,如下图:
想要改变页的顺序,可以右键单击“页次序”,就会弹出下面的对话框,这时我们可以对相应选中的页进行上移和下移啦:
还可以对页进行改标题,改成我们想要的名称,这时需要打开“属性表”界面,找到“格式”选项下面的标题,在标题中键入我们想要的名称:
接下来,可以在选项卡的每个页里面放入我们想要的内容啦,我们先在1页中放入一个“标签”和一个“按钮”控件:
然后在页2上放入一个标签和一个按钮控件:
这进行,我们运行窗体,也就是进入窗体视图,可以看到在运行的界面有两个页,这两个页我们都可以随意点进去:
其实选项卡控件是可以帮助我们在同一个窗体下显示多个实现不同功能的操作,用好这个选项卡控件是我们对复杂工作进行操作的基础,所以大家可以多多体会这个控件的作用。
首先,进入一个空白窗体的设计视图→“窗体设计工具”→ “设计”→“控件”→“超链接控件”图标:
在接下来弹出的对话框中,在左侧的“链接到”区域有四个选项,其中包括“现有文件或网页”、“此数据库中的对象”、“电子邮件地址”、“超链接生成器”,我们只需要选择第二项“此数据库中的对象”,其它的选项都是不常用的,大家可以自己试一下:
点击确定后,可以看到在窗体中出现了带有“超链接”格式的“学生信息”:
可以通过点击“属性表”,找到标题一栏,将标题更改为“学生基本情况”,这样在窗体中的显示的字样就改变了:
此时,我们来看一下运行窗体后的效果是怎么样的,单击右键进入窗体视图,或者保存窗体后,将窗体关闭,再进行双击打开自动进入到窗体视图,也就是进入到窗体的运行状态:
可以看到窗体上只有刚刚我们添加的超链接到已有的数据表的控件,这时我们单击这个控件,可以很轻松的将这个学生信息表找到并打开:
下面,我们再添加一个“超链接”控件,并将这个控件链接到一个创建好的查询,首先我们来创建一个查询,查询语句为:
该查询语句为将“学生信息”表和“成绩单”表以学号进行关联,也就是将所有的信息放在一个合表中,当然,这个表不是真实存在的表,它只是一个查询:
关闭这个查询之后,在上面的窗体上再添加一个“超链接”控件,链接到这个查询中:
点击确定后,新添加的控件出现在了窗体中:
此时,我们来运行一下窗体,就是进入到窗体的窗体视图:
点击“学生成绩合表”控件,可以看到这个查询的结果显示了出来:
不但超链接可以链接到数据库中的数据表和查询,也可以链接到窗体,这对于我们管理复杂的数据是很有用处的,大家可以自己在实际工作中去慢慢体会。
首先,创建两个窗体,一个“成绩单”窗体和一个“学生信息窗体”,点击“成绩单”数据表,选择“创建”选项卡,选择“窗体”,保存窗体名称为“成绩单”:
点击“学生信息”数据表,选择“创建”选项卡,选择“窗体”,保存窗体名称为“学生信息”:
两个窗体创建完之后,再创建一个空白窗体,选择“创建”选项卡,选择“空白窗体”,保存窗体名称为“窗体5”:
此时,选择“窗体布局工具”中“设计”选项下的“控件”,直接找到“导航”图标,在窗体5中进行选择区域:
此时看到在窗体5中出现了“新增”字样:
用鼠标单击,输入名称“成绩单”即可:
继续用鼠标单击“新增”,输入名称“学生信息”:
然后,我们将这两个导航的属性表打开,将对应的数据分别选择刚刚我们创建好的两个窗体:
此时,我们运行窗体,就是进入窗体5的窗体视图下,下面的界面就是窗体5的运行状态:
接着,点击成绩单或者学生信息导航,下面的界面是“成绩单”导航:
下面的界面是“学生信息”导航:
可以看到,通过导航控件可以在一个窗体中同时可查看多个窗体的内容。
可以根据实际工作的需要,选择导航控件选项的数量,可以增加和删除相应的导航窗体选项。
“组合框”控件
创建一个空白窗体,选择窗体布局工具设计选项下的“组合框”控件图标:
在空白窗体选择“组合框”控件存放的区域:
此时,点击属性表,在属性表中选择“窗体”选项:
选择数据项下的记录源,然后选择一个表,这里面我们选择了“学生信息”表:
接下来,选择属性表中的“组合框”,这里面的名称就是“combo8”:
找到数据选项,在控件来源中选择“姓名”选项:
在下面的行来源选择“学生信息”表:
点击添加,就会弹出下面的界面,然后双击“姓名”,然后保存关闭即可:
此时运行窗体,进入窗体视图,出现了下面的界面:
我们可以点击右侧的下拉条,可以看到所有学生的姓名都出现在了下拉框里面:
“列表框”控件
在上图的基础上,直接进入设计视图,单击右键,在弹出的菜单中选择“更改为”,然后选择“列表框”即可:
接着保存窗体,运行窗体后,学生姓名直接显示在了列表框内:
Access窗体“页眉”和“页脚”怎么来设置。
首先,我们先来创建一个空白窗体,单击创建,选择“空白窗体”选项,可以看到一个空白窗体“窗体7”就建好啦,直接保存即可:
当然,也可以为它换个好听的名字“窗体页眉和页脚”,在点击右键保存时会提示你输入名称,直接换个名字:
来到窗体布局工具设计选项下,能够找到“徽标”、“标题”和“日期和时间”,这些都是用来添加到页眉上的:
先来点击“徽标”,在弹出的对话中选择一张图片来放到我们的页眉上:
然后右键切换到窗体的“设计视图”,就可以看到徽标就出现在了我们的窗体页眉上了:
下面在页脚上添加日期,同样我们选择日期和时间项,在弹出的对话框中,只勾选“包含日期”:
确定后,可以看到日期却添加到了页眉位置:
接下来,我们直接将日期拖到页脚区域,然后对其大小和位置进行适当的设定和修改:
这时我们再来看一下运行后窗体的效果,就是进入到窗体的运行状态,也就是“窗体视图”,可以看到页眉上的徽标和页脚的时间都有啦:
当然,我们还可以在页眉上添加相应的标题,当选择“标题”后,标题栏就会自动跳到页眉的位置,我们直接输入相应的标题名称即可:
运行窗体后,可以看到标题也有啦:
页眉和页脚做完之后,可以放心的对窗体的主体部分进行设计了!
在已有的Access数据库中有两个表,一个是“学生信息”表,一个是“成绩单”表,我们先创建一个查询语句,将这两个表的信息放在一个查询里面:
上面这个查询的运行结果就是将两个表的信息以查询的方式显示在一个表中:
然后为这个查询起个名称,而后关闭这个查询即可,鼠标单击刚刚创建好的查询,进而点击“创建”选项卡,选择“窗体”,这个合表的窗体就创建完啦,直接保存这个窗体,名称为“学生成绩单”:
下面对这个窗体稍微设计一下,首先我们来设计它的页眉,单击页眉的名称即可修改其名称,将页眉的名称修改为“学生总分成绩”:
修改后,再来为页眉添加一个好看的图片,单击图标位置,打开属性表,在格式选项下找到图片:
单击图像,选择图片路径,选择图片:
缩放模式选择“缩放”即可,这样可以看到完整的图片,如果选择剪裁,就只能看到图片的一部分:
此时,保存窗体,运行窗体,即进入到窗体视图的效果,该窗体有页眉,包括名称和图片,这样使我们的窗体内容能够得到更清楚的表达:
再来把主体界面修整一下,进入到“设计视图”,首先把表格布局删除掉,这时可以随意对窗体上的单个控件进行移动和修改啦:
先来设置好一个控件,然后全部选中,找到“窗体设计工具”下“排列”选项下的“大小/空格”,点击“至最短”:
点击“至最短”后,可以看到其它的控件也随之改变了,然后点击“至最窄”:
就变成下面的效果:
这时,我们再来移动它们的位置,用鼠标单击选中拖动即可,或者选择“间距”下的“垂直减少”,调到适当的距离即可:
用鼠标拖动,放到一栏:
此时,我们运行一下窗体,看看效果:
再添加一个日期:
然后,用鼠标拖到页脚的适当位置即可:
保存后,进入窗体视图运行结果,可以看到,页眉和页脚都设置好了:
大家如果对这个窗体的设计还不是很满意,还可以继续设置成自己想要的样式,包括摆放的布局,或者是以数据表的形式进行显示。
结语:如果喜欢请关注、转发!码字不易
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。