Python中第三方库封装mysql数据库的示例分析

本篇文章为大家展示了Python中第三方库封装MySQL数据库的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了沙洋免费建站欢迎大家使用!

这次封装数据库,就算不是为了自动化测试,数据库操作也必须要会,为什么?因为在很多时候,修复现网用户数据都是通过脚本实现的,如果不用其他语言,那么python在这一块的优势就十分明显了。

'''

Created on 2019年10月10日

@author: qguan

'''

import pymysql

from utils.HandleLogging import log as logging

mysql_info = {"host": '127.0.0.1',

"port": 3306,

"user": 'root',

"passwd": 'root',

"db": 'mysql',

"charset": 'utf8'}

class HandleMySQL(object):

'''

classdocs

'''

def __init__(self):

'''

初始化mysql数据库信息,创建连接游标

'''

self.db_info = mysql_info

self.logger = logging

try:

self.conn = pymysql.connect(host=self.db_info['host'],

port=self.db_info['port'],

user=self.db_info['user'],

passwd=self.db_info['passwd'],

db=self.db_info['db'],

charset=self.db_info['charset'],

cursorclass=pymysql.cursors.DictCursor)

self.logger.info("success!")

except Exception as a:

self.logger.info("failture:%s" % a)

raise a

else:

self.logger.info("create cursor!")

self.cursor = self.conn.cursor()

def __call__(self, sql, arg=None, is_more=False):

'''

调用数据库执行方法

:param sql:执行的sql语句,str类型

:param arg:参数必须是序列类型:list、str、tuple

:param is_more:是否查询显示更多数据,通常根据sql的limit来确定

:return:

'''

self.mysql_execute(sql, arg)

if is_more:

result = self.cursor.fetchall()

else:

result = self.cursor.fetchone()

# 不合适,如果还有sql在循环执行,在这里关闭,会造成sql执行失败

# self.mysql_close()

return result

def mysql_execute(self, sql, arg=None):

'''郑州人流医院哪家好 http://mobile.zhongyuan120.com/

封装自己执行sql语句的方法

'''

try:

self.cursor.execute(sql)

except Exception as a:

self.conn.rollback() # sql回滚处理

self.logger.info("回滚sql,异常如下:{}".format(a))

raise a

else:

self.conn.commit() # sql提交

def mysql_getrows(self, sql):

'''

返回查询结果集

:return: 返回的是一个嵌套字典的元组

'''

try:

self.cursor.execute(sql) # arg必须是序列类型

except Exception as a:

self.logger.info("执行SQL语句出现异常:%s" % a)

raise a # 直接抛出异常,不在执行后面的语句

else:

rows = self.cursor.fetchall()

return rows

def mysql_getrow(self, sql):

'''

返回查询结果集

return:结果是个字典

'''

try:

self.cursor.execute(sql) # arg必须是序列类型

except Exception as a:

self.logger.info("执行SQL语句出现异常:%s" % a)

raise a

else:

row = self.cursor.fetchone()

return row

def mysql_close(self):

'''

关闭数据库连接,关闭游标

'''

try:

self.conn.close()

self.cursor.close()

self.logger.info("正常关闭mysql连接!")

except Exception as a:

self.logger.info("关闭mysql连接池失败,异常如下:{}".format(a))

raise a

if __name__ == '__main__':

mq = HandleMySQL()

sql = 'SELECT *from user limit 3'

# print(mq(sql, is_more=True))

mq.mysql_close()

上述内容就是Python中第三方库封装mysql数据库的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

分享文章:Python中第三方库封装mysql数据库的示例分析
分享网址:https://www.cdcxhl.com/article42/gpgoec.html

成都网站建设公司_创新互联,为您提供微信小程序品牌网站制作网站策划电子商务网站维护移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发