python操作MySQL数据库(增删改查)
来源:互联网 发布:linux 监听udp端口 编辑:程序博客网 时间:2024/05/31 06:24
在之前进行python操作MySQL数据库时,写了一些可通用的模板,现将代码总结如下:
为降低耦合性,我将连接数据库的内容单独建立了一个文件,取名为:config.py
代码如下:
#config.py#!/user/local/bin/python2.7# encoding:utf-8#以字典形式保存数据库连接信息conn = dict(host='127.0.0.1',port = 3306,user='root',passwd = 'xxxx',db ='xxxx',charset = 'utf8')
- host :数据库服务器地址
- port :端口号
- user :用户名
- passwd :数据库密码
- db:数据库名
- charset:编码格式
以下代码主要是对数据库实现基本操作的底层逻辑实现,文件取名为:dbHelper.py
import MySQLdb#导入config.pyimport configclass mySqlHelper(object): def __init__(self): #获取数据库连接信息 self.conn = config.conn #创建表 def createTable(self,sql): ''' 此处连接语句也可为: conn = MySQLdb.connect(host='127.0.0.1',port = 3306,user='root',passwd = 'xxxx',db ='xxxx',charset = 'utf8') 这样的话第一个文件便不需要了,但是麻烦的是每一个连接操作都需要写这麽长一行代码,显然第一种方法更简单。 ''' conn = MySQLdb.connect(**self.conn) cur=conn.cursor() cur.execute(sql) cur.close() conn.close() #查询单行 sql:为SQL语句 prames:为要传入的参数,可以为元组 def selectOne(self,sql,prames): #传入的数据库链接信息是以字典的形式故而 **self.conn conn = MySQLdb.connect(**self.conn) cur = conn.cursor() #将查询数据结果以字典形式呈现 #cur = conn.cursor(cursorclass = MySQLdb) cur.execute(sql,prames) #匹配单条数据 data = cur.fetchone() cur.close() conn.close() return data #返回执行sql语句得到的数据,查询一般用得到。 #查询全部数据 def selectall(self,sql): conn = MySQLdb.connect(**self.conn) cur = conn.cursor() #cur = conn.cursor(cursorclass = MySQLdb) cur.execute(sql) #data = cur.fetchmany(number)接受number条数据返回 #featchall匹配多条数据 data = cur.fetchall() cur.close() conn.close() return data #查询多条数据 def selectmany(self,sql,prames,number): conn = MySQLdb.connect(**self.conn) cur = conn.cursor() cur.execute(sql,prames) #接受number条数据返回 data = cur.fetchmany(number) cur.close() conn.close() return data #插入数据 def insert(self,sql,prames): conn = MySQLdb.connect(**self.conn) cur = conn.cursor() recount = cur.execute(sql,prames) conn.commit() cur.close() conn.close() return recount #插入多条数据 def insertMany(self,sql,lis): conn = MySQLdb.connect(**self.conn) #conn.ping(True) cur = conn.cursor() #executemany一次处理多条数据 recount = cur.executemany(sql,lis) conn.commit() cur.close() conn.close() return recount #删除数据 def delete(self,sql,prames): conn = MySQLdb.connect(**self.conn) cur = conn.cursor() recount = cur.execute(sql,prames) conn.commit() cur.close() conn.close() return recount #删除全部数据 def deleteAll(self,sql): conn = MySQLdb.connect(**self.conn) cur = conn.cursor() recount = cur.execute(sql) conn.commit() cur.close() conn.close() return recount #更新数据 def update(self,sql,prames): conn = MySQLdb.connect(**self.conn) cur = conn.cursor() recount = cur.execute(sql,prames) conn.commit() cur.close() conn.close() return recount
以下是功能实现的代码,新建一个文件:v9_python.py
因为我要操作的表名为v9_python,这样方便明白这是哪张表的操作。当然也可自定义。
#!/user/local/bin/python2.7#encoding:utf-8#导入 dbHelper 中的类 mySqlHelperfrom dbHelper import mySqlHelper#对表v9_python进行操作class v9_python(object): def __init__(self): #实例化 mySqlHelper() self.__table = mySqlHelper() #单行查询 def selectOneFromV9(self,newid): #注意在数据库操作时无 %d ,全部字段都用%s来匹配,无论哪种数据类型。 sql = 'select * from v9_python where id=%s' prames = (newid,) return self.__table.selectOne(sql, prames) #从指定id开始查询Number条数据 def selectFromV9ForNumber(self,id,number): sql = 'select * from v9_python where id limit %s,%s' prames = (id,number,) return self.__table.selectmany(sql, prames) #全部查询 def selectAllFromV9(self): sql = 'select * from v9_python' return self.__table.selectall(sql) #插入单行数据 def insertDataToV9(self,id,catid,typeid,title): sql = 'insert into v9_python(id,catid,typeid,title) values(%s,%s,%s,%s)' prames = (id,catid,typeid,title,) return self.__table.insert(sql, prames) #插入多条数据,可避免数据库多次打开关闭。 ''' lis为一个数据列表,形式如: lis = [[id,catid,typeid,title],[id2,catid2,typeid2,title2]] ''' def insertManyDataToV9(self,lis): sql = 'insert into v9_python(id,catid,typeid,title) values(%s,%s,%s,%s)' return self.__table.insertMany(sql, lis) #删除数据 def deleteFromV9(self,news_id): sql = 'delete from v9_python where id=%s' prames = (news_id,) return self.__table.delete(sql, prames) #删除全部 def deleteAllFromV9(self): sql = 'delete from v9_python' return self.__table.deleteAll(sql) #更改数据 def updateV9_python(self,title,id): sql = 'update v9_python set title= %s where id = %s' prames = (title,id,) return self.__table.update(sql, prames)
以上还有改进及完善之处,请大家不吝赐教。
阅读全文
1 0
- python操作MySQL数据库增删改查
- python操作mysql数据库(增删查改)
- python操作MySQL数据库(增删改查)
- python 连接mysql数据库 进行增删改查操作
- python操作MySQL数据库增删改查使用MySQLdb
- python安装mysql数据库和实现增删查改操作
- Python之MySQL数据库增删改查操作
- python3操作mysql数据库增删改查
- mySql数据库操作 增删改查
- MySQL 增删改查 数据库操作
- mysql数据库增删查改操作命令
- MySQL数据库操作步骤---"增删改查"
- python 操作 mysql 简单增删改查
- Python 操作mysql 增删改查
- python的MySQL操作增删改查
- Python操作mysql数据库(封装基本的增删改查)
- Python操作mysql数据库(封装基本的增删改查)
- Linux学习笔记--Python操作mysql数据库(封装基本的增删改查)
- c++ sort函数的使用
- 小赚一笔的薅羊毛项目,日撸100¥
- JLink v8固件丢失修复教程
- 深度解析正则表达式exec和match两者使用的异同以及要注意的地方
- elasticsearch5.x之Slice scroll
- python操作MySQL数据库(增删改查)
- float导致父级元素塌陷的问题
- sql 查出一张表中重复的所有记录数据
- C++高级编程学习笔记
- SQL2008还原数据库无法还原问题
- subString(), subStr(),splice(),split()的区别
- 利用nodeJS实现的网络小爬虫
- [IOI1994]The Castle
- angularJS实现二级联动查询以及自定义过滤器的使用