当前位置:首页 > 城事精选 > 正文

Python接口测试之对MySQL的增、删、改、查操作(五)

本短文主要来说python对mysql数据库的基本操做,条件是已搭建python环-境和Mysql数据库的环-境,这里再也不一五一十推荐拉。在python的下令行环-境下看是否能够导入MySQLdb,如果能够导入而且无任何的过错提醒,表现以前安置成-功了,见截图
以前很成-功的安置了python操做mysql的数据库,在这里,咋们一五一十的推荐对python对mysql的增添,删除,修正和盘的基本操做,这里运用的数据库称呼是“day2017吗”,咋们对数据库的操做,一最先的时刻是建立数据库,然后是在数据库中建立表,在这里,表的称呼为userInfo,见建立好的表字段信息
建立好数据库和建立好了数据库中的表以后,下去最先操做数据库,操做数据库的第一步固然是联接数据库,然后是建立游标,接下去是对数据库的种种操做,这里咋们先来操做Insert数据的操做,见完成的代码
检察数据库,能够看到,数据以前插入到数据库中,见盘的结局:
在上面的案例中,不过插入了单条数据,现实上,某些时刻,会插入多条数据,也即是大量插入,大量插入完成的代码为
接下去,咋们来检察数据库的盘,数据盘分为两种,一种是盘的结局是一条语句,运用的是fetchone()办法,另一种是盘的数据结局是多条,运用的办法是fetchmany(),咋们分-别来看这两个办法的运用,咋们先来看单条数据的盘,见完成的代码:
多条数据的盘,见完成的代码
下面咋们来看更新语句的尝试,见完成的代码
最终一步,也即是删除数据了,直-接看以下的实当代码
现实上,关于如上操做数据库的办法,有许多的代码是能够重够的,好比联接数据库的办法,另外,咋们能够把操做数据库的办法写在一位类内里,在营业挪用的时刻直-接挪用咋们的数据库办法举行操做,见下面操做mysql数据库的办法,见源码
呢!/usr/bin/env python
coding:utf-8
import MySQLdb
class MySQLHelper(object):
def __init__(self):
pass
def get_one(self,sql,params):
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='server',db='day2017')
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
retCount = cur.execute(sql,params)
data = cur.fetchone()
cur.close()
conn.close()
return data
def get_many(self,sql,params):
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='server',db='day2017')
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
retCount = cur.execute(sql,params)
data = cur.fetchall()
cur.close()
conn.close()
return data
def insert_one(self,sql,params):
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')
cur = conn.cursor()
cur.execute(sql, params)
conn.commit()
cur.close()
return u'插入数据库成-功'
def insert_many(self,sql,params):
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')
cur = conn.cursor()
cur.executemany(sql, params)
conn.commit()
cur.close()
return u'大量插入数据库成-功'
def update_one(self,sql,params):
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
ret = cur.execute(sql, params)
conn.commit()
cur.close()
conn.close()
return u'更新数据库成-功'
def delete_one(self,sql,params):
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
ret = cur.execute(sql, params)
conn.commit()
cur.close()
conn.close()
return u'删除数据库成-功'
把联接数据库部-分举行重构,放到一位config.py的文件中,这样咋们联接数据库的办法就只要要在config.py文件守护了,而不需要在如上代码中每逐一位都得看的修正,这着实是很倒霉,见重构后的config.py文件源码
呢!/usr/bin/env python
coding:utf-8
conn_dict=dict(host='127.0.0.1', user='root', passwd='server', db='day2017')
见重构后操做mysql的数据库办法,见源码
呢!/usr/bin/env python
coding:utf-8
import MySQLdb
import config
class MySQLHelper(object):
def __init__(self):
self.conn=config.conn_dict
def get_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
retCount = cur.execute(sql,params)
data = cur.fetchone()
cur.close()
conn.close()
return data
def get_many(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
retCount = cur.execute(sql,params)
data = cur.fetchall()
cur.close()
conn.close()
return data
def insert_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor()
cur.execute(sql, params)
conn.commit()
cur.close()
return u'插入数据库成-功'
def insert_many(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor()
cur.executemany(sql, params)
conn.commit()
cur.close()
return u'大量插入数据库成-功'
def update_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
ret = cur.execute(sql, params)
conn.commit()
cur.close()
conn.close()
return u'更新数据库成-功'
def delete_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
ret = cur.execute(sql, params)
conn.commit()
cur.close()
conn.close()
return u'删除数据库成-功'
写数据库的操做办法,是为了举行对营业的操做,要不仅仅写这些没什么现实的意义,如咋们完成输入用户名和密码,在在数据库中检查,如果用户名和密码全是admin,那么通过,如果有这个内里一位不-是admin,就提醒用户,请提醒用户用户名或者者密码过错,下面去完成这样的一位历程,见完成的源码
呢!/usr/bin/env python
coding:utf-8
import MySQLdb
import config
class MySQLHelper(object):
def __init__(self):
self.conn=config.conn_dict
def get_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
retCount = cur.execute(sql,params)
data = cur.fetchone()
cur.close()
conn.close()
return data
def get_many(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
retCount = cur.execute(sql,params)
data = cur.fetchall()
cur.close()
conn.close()
return data
def insert_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor()
cur.execute(sql, params)
conn.commit()
cur.close()
return u'插入数据库成-功'
def insert_many(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor()
cur.executemany(sql, params)
conn.commit()
cur.close()
return u'大量插入数据库成-功'
def update_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
ret = cur.execute(sql, params)
conn.commit()
cur.close()
conn.close()
return u'更新数据库成-功'
def delete_one(self,sql,params):
conn = MySQLdb.connect(**self.conn)
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
ret = cur.execute(sql, params)
conn.commit()
cur.close()
conn.close()
return u'删除数据库成-功'
class CheckUserInfo(object):
def __init__(self):
self.__helper=MySQLHelper()
def checkValid(self,username,password):
sql='select * from userInfo where username=%s and password=%s'
params=(username,password)
return self.__helper.get_one(sql,params)
def info():
username=raw_input(u'请输入你的用户名:\n')
password=raw_input(u'请输入你的密码:\n')
userInfo=CheckUserInfo()
result=userInfo.checkValid(username,password)
if not result:
print u'用户名或者者密码过错,请联系治理员'
else:
print u'贺喜你,输入准确!'
if __name__=='__main__':
info()