python下MySQLdb使用

上传人:碎****木 文档编号:220860870 上传时间:2021-12-09 格式:DOCX 页数:8 大小:296.97KB
返回 下载 相关 举报
python下MySQLdb使用_第1页
第1页 / 共8页
python下MySQLdb使用_第2页
第2页 / 共8页
python下MySQLdb使用_第3页
第3页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《python下MySQLdb使用》由会员分享,可在线阅读,更多相关《python下MySQLdb使用(8页珍藏版)》请在金锄头文库上搜索。

1、python 下的 MySQLdb 使用下载安装 MySQLdblinux 版本 下载,在安装是要先安装setuptools,然后在下载文件目录下,修改 mysite.cfg,指定本地 mysql 的mysql-config 文件的路径windows 版本网上搜索到一个 安装后 import MySQLdb 会出现 DeprecationWarning: the sets module is deprecated 这样一个警告,google 之原因是 2.6 不知 sets 这个模块,不过已经添加了 set 内置函数。找到 MySQLdb 文件夹的中init.py,注释掉 from sets

2、import ImmutableSetclass DBAPISet(ImmutableSet):添加 class DBAPISet(frozenset):;找到converters.py 注释掉 from sets import BaseSet, Set。然后修改第 45 行和129 行中的 Set 为 set。搞定。下面开始操作的 demo:Python 代码1. # -*- coding: utf-8 -*-2. #mysqldb3. import time, MySQLdb 4.5. #连接6. conn=MySQLdb.connect(host=localhost,user=root,

3、passwd=,db= test,charset=utf8)7. cursor = conn.cursor() 8.9. #写入10.sql = insert into user(name,created) values(%s,%s) 11.param = (aaa,int(time.time()12.n = cursor.execute(sql,param) 13.print n14.15.#更新16.sql = update user set name=%s where id=3 17.param = (bbb)18.n = cursor.execute(sql,param) 19.pri

4、nt n20.21.#查询22.n = cursor.execute(select * from user) 23.for row in cursor.fetchall():24. for r in row:25. print r 26.27.#删除28.sql = delete from user where name=%s 29.param =(aaa)30.n = cursor.execute(sql,param) 31.print n32.cursor.close() 33.34.#关闭35.conn.close()基本的使用如上,还是很简单的,进一步使用还没操作,先从网上找点资料放上

5、来,以备后续查看1. 引入 MySQLdb 库import MySQLdb2. 和数据库建立连接conn=MySQLdb.connect(host=localhost,user=root,passwd=sa,db=myt able,charset=utf8)提供的 connect 方法用来和数据库建立连接,接收数个参数,返回连接对象.比较常用的参数包括host:数据库主机名.默认是用本地主机. user:数据库登陆名.默认是当前用户. passwd:数据库登陆的秘密.默认为空. db:要使用的数据库名.没有默认值.port:MySQL 服务使用的 TCP 端口.默认是 3306. charse

6、t:数据库编码.更多关于参数的信息可以查这里http:/mysql-然后,这个连接对象也提供了对事务操作的支持,标准的方法commit() 提交rollback() 回滚3. 执行 sql 语句和接收返回值cursor=conn.cursor() n=cursor.execute(sql,param)首先,我们用使用连接对象获得一个 cursor 对象,接下来,我们会使用 cursor 提供的方法来进行工作.这些方法包括两大类:1.执行命令,2.接收返回值cursor 用来执行命令的方法:callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参

7、数列表,返回值为受影响的行数execute(self, query, args):执行单条 sql 语句,接收的参数为 sql 语句本身和使用的参数列表,返回值为受影响的行数executemany(self, query, args):执行单条 sql 语句,但是重复执行参数列表里的参数,返回值为受影响的行数nextset(self):移动到下一个结果集cursor 用来接收返回值的方法:fetchall(self):接收全部的返回结果行.fetchmany(self, size=None):接收size 条返回结果行.如果size 的值大于返回的结果行的数量,则会返回 cursor.arra

8、ysize 条数据.fetchone(self):返回一条结果行.scroll(self, value, mode=relative):移动指针到某一行.如果mode=relative,则表示从当前所在行移动value 条,如果mode=absolute,则表示从结果集的第一行移动 value 条.下面的代码是一个完整的例子.#使用 sql 语句,这里要接收的参数都用%s 占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%ssql=insert into cdinfo values(%s,%s,%s,%s,%s) #param 应该为 tuple 或者 list param=

9、(title,singer,imgurl,url,alpha)#执行,如果成功,n 的值为 1 n=cursor.execute(sql,param)#再来执行一个查询的操作cursor.execute(select * from cdinfo)#我们使用了fetchall 这个方法.这样,cds 里保存的将会是查询返回的全部结果. 每条结果都是一个 tuple 类型的数据,这些 tuple 组成了一个 tuple cds=cursor.fetchall()#因为是 tuple,所以可以这样使用结果集print cds03#或者直接显示出来,看看结果集的真实样子print cds#如果需要批量

10、的插入数据,就这样做sql=insert into cdinfo values(0,%s,%s,%s,%s,%s)#每个值的集合为一个 tuple,整个参数集组成一个 tuple,或者 list param=(title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,a lpha2)#使用 executemany 方法来批量的插入数据.这真是一个很酷的方法! n=cursor.executemany(sql,param)4. 关闭数据库连接需要分别的关闭指针对象和连接对象.他们有名字相同的方法cursor.close() conn.

11、close()四步完成,基本的数据库操作就是这样了.下面是两个有用的连接MySQLdb 用户指南: http:/mysql- MySQLdb 文档: http:/mysql- module.html5 编码(防止乱码) 需要注意的点:1 Python 文件设置编码 utf-8 (文件前面加上 #encoding=utf-8) 2 MySQL 数据库 charset=utf-83 Python 连接 MySQL 是加上参数 charset=utf84 设置 Python 的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)1. #encoding=utf-82. import sys3. import MySQLdb 4.5. reload(sys)6. sys.setdefaultencoding(utf-8) 7.8.db=MySQLdb.connect(user=root,charset=utf8)注:MySQL 的配置文件设置也必须配置成 utf8设置 MySQL 的 f 文件,在 client/mysqld部分都设置默认的字符集(通常在/etc/mysql/f):clientdefault-character-set = utf8 mysqlddefault-character-set = utf8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号