python的数据库层封装_用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)这样就完成了对数据库的封装。可以大大提高对数据库操作的速度和效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值