用python完成对Mysql数据库的封装

   对数据库的操作如果需要大量的信息录入的时候,便会消耗大量的时间和精力。那么在完成与python的交互后,利用Python的编程完成对Mysql数据库的封装,以使得可以在py程序中完成对数据库的操作,将会大大减少冗杂的操作,提高效率。

  完成对Mysql数据库的封装需要了解以下知识:

connection对象:用于建立与数据库的连接

创建对象:调用connect()方法

conn=connect(参数列表)

参数host:连接的mysql主机,如果本机是'localhost'

参数port:连接的mysql主机的端口,默认是3306

参数db:数据库的名称

参数user:连接的用户名

参数passwd:连接的密码

参数charset:通信采用的编码方式,要求与数据库创建时指定的编码一致,否则中文会乱码

对象的方法

close()关闭

execute(operation [, parameters ])执行语句,返回受影响的行数

fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组

next()执行查询语句时,获取当前行的下一行

fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回

scroll(value[,mode])将行指针移动到某个位置

mode表示移动的方式

mode的默认值为relative,表示基于当前行移动到value,value为正则向下移动,value为负则向上移动

mode的值为absolute,表示基于第一条数据的位置,第一条数据的位置为0

对象的属性

rowcount只读属性,表示最近一次execute()执行后受影响的行数

connection获得当前连接对象

 在了解以上知识后,就可以使用Python编辑器进行封装操作了。

编辑封装的py模块:

#coding=utf8
from MYSQLdb import *
class MysqlHelper:
	def __init__(self,host,port,db,user,passwd,charset='utf8'):#接收要进行操作的数据库的信息
		self.host=host
		self.port=port
		self.db=db
		self.user=user
		self.passwd=passwd
		self.charset=charset
	def open(self):#数据库的打开操作
		self.conn=connect(host=self.root,port=self.port,db=self.db,user=self.user,
			passwd=self.passwd)
		self.cursor=self.conn.cursor()
	def  close(self):#数据库的关闭操作
		self.cursor.close()
		self.conn.close()
	def cud(self,sql):#数据库的增删改操作
		try:
			self.open()
			self.cursor.execute(sql,params)
			self.comm.commit()
			
			self.close()
			print ('OK')
		except Exception,e:
			print(e.message)
	def all(self,sql,params=()):#数据库的查找操作
		try:
			self.open()
			self.cursor.execute(sql,params)
			result=self.cursor.fetchall()
			return sesult
		except Exception,e:
			print(e.message)

这里需要补充的是里面的params是传递的参数,将传递的信息给参数化。

下面给个例子:

  sname=raw_input("请输入学生姓名:")

    params=[sname]  引用接收一个列表信息

    count=cs1.execute('insert into students(sname) values(%s)',params)此处的%s不是格式化,它只是个占位符,无论内容的是什么类型都用%s.

对编辑好的封装模块对其连接相应的数据库进行操作。
对数据库进行操作:
from py import MysqlHelper
name=raw_input("请输入学生姓名")
id1=raw_input("请输入学生编号")
sql='update students set name=%s where id=%s' (增加修改和删除操作是一样的,使用同一个cud方法)
sql.'select id,name from students where id<5'查询操作 用的是all方法
params=[name,id1]
sqlhelper=MysqlHelper('localhost',3306,'python3','root','mysql')
sqlhelper.cud(sql,params)
result=sqlhelper.all(sql)
print(result)
这样就完成了对数据库的封装。可以大大提高对数据库操作的速度和效率。


猜你喜欢

转载自blog.csdn.net/qq_36828513/article/details/80143278
今日推荐