对数据库的操作如果需要大量的信息录入的时候,便会消耗大量的时间和精力。那么在完成与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模块:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35#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.
对编辑好的封装模块对其连接相应的数据库进行操作。1
2
3
4
5
6
7
8
9
10
11对数据库进行操作: 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)
最后
以上就是单纯汽车最近收集整理的关于用python完成对Mysql数据库的封装的全部内容,更多相关用python完成对Mysql数据库内容请搜索靠谱客的其他文章。
发表评论 取消回复