python中常用的各种数据库操作模块和连接实例


Posted in Python onMay 29, 2014

工作中,经常会有用python访问各种数据库的需求,比如从oracle读点配置文件或者往mysql写点结果信息之类的。
这里列一下可能用到的各个模块。

sqlite3: 内置模块
用sqlite,有时候确实很方便,我觉得它确实做到了宣称的“零配置”。python自2.5版以来,就内置了对sqlite3的支持,使用也非常简单,按照文档上来:

#打开db文件,获得连接
conn = sqlite3.connect('数据文件名')
#获得游标
c = conn.cursor()
#执行SQL
c.execute('''SQL 片段''')
#如果有对数据的修改操作,那就需要commit一下
conn.commit()
#关闭游标
c.close()
#关闭连接
conn.close()

另外,关于sqlite在C和bash下的用法,可以参考为以前的文章。

oracle: cx_Oracle

其实,前面先介绍sqlite3,除了它确实是个小数据库以外,还有一个原因:其他数据库在python下的操作,其实基本上和sqlite3的操作是一样的,也就是说,python其实已经几乎统一了数据库的接口。
打开cx_Oracle的文档页面,你会发现其风格也和python文档很像,因为他们都是用 Sphinx 做的。模块的使用方法就更像了,把上面的代码里,获得连接的那行,换成这样:

conn = cx_Oracle.connect('username/password@TNSname')

就可以了。只要把用户名、密码、TNS组成一个字符串,传进去,就可以得到一个oracle的连接了。

mysql: MySQLdb

和前两个非常类似,连接的时候用以下两个语法之一:

conn = MySQLdb.connect('host', 'username', 'password', 'database')
conn = MySQLdb.connect(host="host", user="username", passwd="password", db="database")

接下来,也把它当成sqlite用就好了。

excel: pyExcelerator

好吧,我承认excel不算数据库,只是写在这里充数而已,哈哈。因为偶尔还是要取下别人发来的excel里的数据的。
其实,用pyExcelerator来读取文件也是很简单的:

sheets=pyExcelerator.parse_xls('xxx.xls')

这样出来以后,sheets就是整个工作薄了,它是工作表组成的list,而一个工作表对应于一个tuple,格式是: ('工作表名', 内容),而内容又是一个dict,key是一个(行数, 列数)的tuple,value才是正在的对应格子的内容。看起来确实比较绕,好在处理excel的应用也不多,将就吧。
另外,其实pyExcelerator还支持写入数据到excel的,如果有把查询结果保存成excel的需求的话,可以试试看,我还是尽量不用这种格式了,哈哈。
Python 相关文章推荐
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python 文件管理实例详解
Nov 10 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
如何在python中使用selenium的示例
Dec 26 Python
tornado 多进程模式解析
Jan 15 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
pandas分组聚合详解
Apr 10 Python
Python中的With语句的使用及原理
Jul 29 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
python unittest单元测试的步骤分析
Aug 02 Python
从零学Python之入门(五)缩进和选择
May 27 #Python
从零学Python之入门(四)运算
May 27 #Python
一则python3的简单爬虫代码
May 26 #Python
从零学Python之入门(三)序列
May 25 #Python
从零学Python之入门(二)基本数据类型
May 25 #Python
Python tempfile模块学习笔记(临时文件)
May 25 #Python
Python logging模块学习笔记
May 24 #Python
You might like
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
采用call方式实现js继承
2014/05/20 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现计算最小编辑距离
2016/03/17 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
详解python算法常用技巧与内置库
2020/10/17 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
交通安全演讲稿
2014/01/07 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
小学一年级学生评语
2014/04/22 职场文书
初中生评语大全
2014/04/24 职场文书
求职意向书
2014/07/29 职场文书
顶岗实习协议书
2015/01/29 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
家长通知书家长意见
2015/06/03 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS