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 相关文章推荐
python encode和decode的妙用
Sep 02 Python
python学习数据结构实例代码
May 11 Python
Python中类型检查的详细介绍
Feb 13 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
Django中使用第三方登录的示例代码
Aug 20 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
python基础之爬虫入门
May 10 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
浅谈PHP语法(1)
2006/10/09 PHP
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Python list和str互转的实现示例
2020/11/16 Python
小学三年级数学教学反思
2014/01/31 职场文书
合作合同协议书范本
2015/01/27 职场文书
安全教育主题班会总结
2015/08/14 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
python中validators库的使用方法详解
2022/09/23 Python