zoukankan      html  css  js  c++  java
  • (接口自动化)Python3操作MySQL数据库

    基础语法:

    import pymysql #导入模块
    conn = pymysql.connect(host='localhost',user='root', passwd='123456', db='test', port=3306, charset='utf8',cursorclass = pymysql.cursors.DictCursor) #连接数据库,cursorclass = pymysql.cursors.DictCursor表示把查询的返回值变为字典格式
    cur = conn.cursor() #建立指针
    cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("老齐","9988","qiwsir@gmail.com")) #插入单条数据
    cur.executemany("INSERT DELAYED INTO  users (username,pwd,mail) VALUES (%s,%s,%s)",('lili', 'ffff', 'gggg@qq.com'),('lili', 'sds', '321@qq.com')) #插入多条数据
    conn.commit() #提交保存
    

      

    以下是在接口测试中的实际应用

    # -*- coding:utf-8 -*-
    import pymysql,logging,os
    class OperationDb_interface(object):
    	def __init__(self):
    		self.conn=pymysql.connect(host='localhost',
    			user='root', passwd='123456', db='test', port=3306, charset='utf8',cursorclass = pymysql.cursors.DictCursor) #创建数据库连接
    		self.cur=self.conn.cursor() #创建游标
    	#定义单条数据操作,增删改
    	def op_sql(self,param):
    		try:
    			self.cur.execute(param) #游标下执行sql语句
    			self.conn.commit() #提交数据
    			return True
    		except pymysql.Error as e:
    			print('Mysql Error %d:%s' % (e.args[0], e.args[1]))
    			logging.basicConfig(filename = os.path.join(os.getcwd(), './log.txt'),
    				level = logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
    			logger = logging.getLogger(__name__)
    			logger.exception(e)
    			return False
    
    
    
    	#查询表中单条数据
    	def selectOne(self,condition):
    		try:
    			self.cur.execute(condition) #执行sql语句
    			results = self.cur.fetchone() #获取一条结果
    		except pymysql.Error as e:
    			results ='spl0001'
    			print('Mysql Error %d:%s' %(e.args[0], e.args[1]))
    			logging.basicConfig(filename = os.path.join(os.getcwd(), './log.txt'),
    				level = logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
    			logger = logging.getLogger(__name__)
    			logger.exception(e)
    		finally:
    			return results
    
    	#查询表中多条数据
    	def selectAll(self,condition):
    		try:
    			self.cur.execute(condition)
    			self.cur.scroll(0, mode='absolute') #游标里的光标回到初始位置
    			results = self.cur.fetchall() #返回游标中所有结果
    		except pymysql.Error as e:
    			results='spl0001'
    			print('Mysql Error %d:%s' %(e.args[0], e.args[1]))
    			logging.basicConfig(filename = os.path.join(os.getcwd(), './log.txt'),
    				level = logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
    			logger = logging.getLogger(__name__)
    			logger.exception(e)
    		finally:
    			return results
    
    	#定义表中插入多条数据操作
    	def insertMore(self, condition,argsall):
    		try:
    			self.cur.executemany(condition,argsall)
    			self.conn.commit()
    			return True
    		except pymysql as e:
    			results ='spl0001' #数据库执行错误
    			print('Mysql Error %d:%s' % (e.args[0], e.args[1]))
    			logging.basicConfig(filename = os.path.join(os.getcwd(), './log.txt'),
    				level = logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
    			logger = logging.getLogger(__name__)
    			logger.exception(e)
    			return False
    	#数据库关闭
    	def __del__(self):
    		if self.cur != None:
    			self.cur.close()
    		if self.conn != None:
    			self.conn.close()
    
    if __name__ == '__main__':
    	test=OperationDb_interface() #实例化类
    	sql1="insert into users (username,pwd,mail) VALUES (%s,%s,%s)"
    	argsall=[('lilyu','1234','1234@qq.com'),('lilu','124','124@qq.com'),('lil','14','14@qq.com')]
    	result=test.insertMore(sql1,argsall)
    	print(result)
    

      

  • 相关阅读:
    带提示范围的猜数小游戏--python
    python中字符串的常见操作
    html表单相关标签及属性
    CSS常用属性
    python装饰器
    python闭包的概念及使用
    nuxt.js实战踩坑记录
    vuex填坑记录
    prerender-spa-plugin预处理vue项目实践
    node+express第一次实战踩坑记录
  • 原文地址:https://www.cnblogs.com/lansan0701/p/7454745.html
Copyright © 2011-2022 走看看