python积累之数据库的精讲--与存储的交互

本来在考虑要不要在一章里挑出几个模块来进行讲解,发现内容有点多,本章主要介绍两个模块

1.mysql   

2.mssql

我们公司现在用的是mysql和sqlserver 所以总结出来两套常用数据库类型供大家使用。 之后的储存系统redis和rabbitMQ消息队列会在之后的章节为大家列出

我所写的所有模块都是基础模块,在工作中肯定能够用到。很多人在刚开始都是一个问题,其实就是东西太多不知道学什么,作为已经有一段经验的人我希望能把这些必须学会的东西列出来,大家勤加练习,其实框架就是多个知识点做一套能用于工作的管理体系,我们用代码制作出来可能一开始没有其他成熟的工具那么方便,但是在积累的过程中,框架优化的过程中,能根据公司的业务来时时改变,能用python做到随心所欲。而不是受制于工具的约束,也能方便维护,快速定位问题在哪,毕竟是自己亲手写的。但是搭建一个框架说难其实不难,但是每个琐碎的知识点你都是必须要会的,最起码知道他能做什么事情,所以在这个过程中我会把需要用到的所有模块知识,包括能够在工作中经常用到的东西列出来,欢迎大家补充,希望喜欢学习的人能一起进步,跟着我一步一步的敲代码~


首先要自己在本地搭建一个属于自己的mysql数据库,搭建过程希望大家自己百度学习,下载navicat对其进行连接




如上图 需要5个参数打印出来conn对象信息为


完成以上步骤就连接成功了。

第二步我们需要创建游标,如果有人不懂游标的概念的话推荐看一下点击观看游标概念


如果数据库含有中文字段的话 我们需要在connect时传递一个编码参数,如下图


第三步执行操作:使用游标进行查询:


这里会有游标大家可以看一下下图和上图得区别,我移动了游标到初始位置所以可以重复查询


知识点:1.查询时操作游标  fetchall 查询全部 fetchone查询一条 还有一个fetchmany传参查询多条

              2.在操作后如果想归0则需要操作游标归0   cursor.scroll(0,mode='absolute')

scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条.



我们所查询出来得所有数据都是以元祖的形式返回,如果想改变其返回格式,则在连接数据库的时候加一条参数

cursorclass = pymysql.cursors.DictCursor


则返回结果变成字典形式

说白了 其实执行sql语句,增删改和查的区别就是在使用游标完成sql之后执行commit() 提交,查询不需要,而增删改都需要commit来进行提交操作,最后要记住关闭数据库连接


以上是他们的函数封装图

总结:连接数据库,创建游标,执行sql,若为增删改需要db.commit 若为查询则根据以上知识点进行数据处理和查询内容,最后关闭数据库连接,先关闭游标,在关闭数据库


最后还有一点是事物回滚,conn.rollback()

如果在操作数据库的过程中,有三条语句,执行两条后失败了一条,我们可以在try except中的异常处理增加事物回滚,它的作用是将游标回滚到执行之前的状态,则全部可以重新执行。

大家了解一下最后一点就行了,不写也没关系,因为pymyssql自动支持了事物回滚。



当我们学会了pymysql的操作时,其实第二部分内容也就会了,只是数据库类型换成了pymssql,sqlserver的操作而已

最后贴出来关于pumssql的在实际工作中的封装



以上是关于数据库操作在实际工作中的封装,有看不懂的地方记得百度,因为都是一些琐碎的知识点,当然在刚开始的时候引入的从配置文件中读取一些内容我们下一节就会讲到,如何管理我们常用的配置,有多种配置文件可以选择。希望大家勤加练习

猜你喜欢

转载自blog.csdn.net/weixin_38079422/article/details/80763879
今日推荐