Python数据库的连接实现方法与注意事项


Posted in Python onFebruary 27, 2016

在Python中要连接数据库,首先我们得先安装几个重要的东西,主要有:

 (1)Python-dev包
 (2)setuptools-0.6c11.tar.gz
 (3)MySQL-python-1.2.3.tar.gz

下面分别来说说这三个主要的包的安装步骤:

(1)Python-dev包    
    直接yum install python-devel

(2)setuptools-0.6c11.tar.gz
    在网上下载后,先解压:tar zxf setuptools-0.6c11.tar.gz,完毕后cd到解压后的文件夹,执行:
     python setup.py build
      python setup.py install

(3)MySQL-python-1.2.3.tar.gz
    跟安装setuptools-0.6c11.tar.gz步骤一样,先解压:tar zxfMySQL-python-1.2.3.tar.gz,
    完毕后cd到解压后的文件夹,执行:

      python setup.py build
      python setup.py install

    在执行上述命令之前,最好先修改一个文件,我们先查找mysql_config的位置,使用命令:
      find / -name mysql_config
    然后我们获取到它的路径,我的是:/usr/bin/mysql_config,然后修改MySQL-python-1.2.3目录下
    的site.cfg文件,去掉mysql_config=XXX这行前面的#,改为:
                       mysql_config = /usr/bin/mysql_config

经过上面的步骤,我们基本就可以MySQLdb安装好了。

可以测试一下,在Python的交互式命令行,输入import MySQLdb,如果没有报错,就说明已经安装好。

下面的Python代码展示了如何连接数据库,并执行数据库的一些操作:

import MySQLdb

try:
  conn = MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
  cur = conn.cursor()

  cur.execute('create database if not exists PythonDB')
  conn.select_db('PythonDB')
  cur.execute('create table Test(id int,name varchar(20),info varchar(20))')

  value = [1,'ACdreamer','student']
  cur.execute('insert into Test values(%s,%s,%s)',value)

  values = []
  for i in range(20):
    values.append((i,'Hello World!','My number is '+str(i)))

  cur.executemany('insert into Test values(%s,%s,%s)',values)
  cur.execute('update Test set name="ACdreamer" where id=3')

  conn.commit()
  cur.close()
  conn.close()
except MySQLdb.Error,msg:
  print "MySQL Error %d: %s" %(msg.args[0],msg.args[1])

可以看出,连接数据库大致分为以下步骤:

  (1)建立和数据库系统的连接
  (2)获取操作游标
  (3)执行SQL,创建一个数据库(当然这一步不是必需的,因为我们可以用已经存在的数据库)
  (4)选择数据库
  (5)进行各种数据库操作
  (6)操作完毕后,提交事务(这一步很重要,因为只有提交事务后,数据才能真正写进数据库)
  (7)关闭操作游标
  (8)关闭数据库连接

当然,如果我们使用已经存在的数据库,那么在获取连接时就可以制定了,比如:
conn = MySQLdb.connect(host='localhost', user='root', passwd='root', db='PythonDB')

如果数据库中有中文,为了防止乱码,我们加入属性charset = 'uft-8'或者'gb2312',charset要跟数据库的编码一致。
conn = MySQLdb.connect(host='localhost', user='root',
       passwd='root', db='PythonDB',charset='utf8')

下面贴一下常用的函数:

数据库连接对事务操作的方法:commit() 提交    rollback() 回滚

cursor用来执行命令的方法:

callproc(self,procname,args)
用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

execute(self, query, args)
执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

executemany(self, query, args)
执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

nextset(self)
移动到下一个结果集

cursor用来接收返回值的方法:

fetchall(self)
接收全部的返回结果行

fetchmany(self, size=None)
接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据

fetchone(self)
返回一条结果行

scroll(self, value, mode='relative')
移动指针到某一行,如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条。

Python 相关文章推荐
Python时区设置方法与pytz查询时区教程
Nov 27 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
python中的print()输出
Apr 12 Python
python代码如何注释
Jun 01 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
python类共享变量操作
Sep 03 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 #Python
学习python之编写简单乘法口诀表实现代码
Feb 27 #Python
学习python 之编写简单乘法运算题
Feb 27 #Python
python学习之编写查询ip程序
Feb 27 #Python
用python写的一个wordpress的采集程序
Feb 27 #Python
python结合shell查询google关键词排名的实现代码
Feb 27 #Python
python的else子句使用指南
Feb 27 #Python
You might like
php微信支付之APP支付方法
2015/03/04 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
angularJS开发注意事项
2018/05/26 Javascript
JS实现随机点名器
2020/04/12 Javascript
浅谈Python接口对json串的处理方法
2018/12/19 Python
Python3内置模块random随机方法小结
2019/07/13 Python
Python简易版停车管理系统
2019/08/12 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
简单了解Python write writelines区别
2020/02/27 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
求职信范文英文版
2014/01/05 职场文书
运动会跳远广播稿
2014/02/04 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
《去年的树》教学反思
2014/04/11 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
作弊检讨书
2015/01/27 职场文书
公司禁烟通知
2015/04/23 职场文书
2015国庆节宣传语
2015/07/14 职场文书
交通安全温馨提示语
2015/07/14 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android