【python小记】访问mysql数据库

题记:

最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本都第一时间考虑python,可以让我把大量时间放在解决问题的思路上,而不是语言本身。这个时候才体会到什么叫“life is short, you need python!”的精髓!

======================================分隔符=====================================

python 访问mysql数据库:

1、首先,保证你安装了mysql的Module  (下载地址 :http://sourceforge.net/projects/mysql-python/ 如果登不上,我这里有个网盘链接:
http://pan.baidu.com/s/1o69fDsI 密码: cu5n)

安装完成后,在IDLE输入命令:import MySqldb   看是否报错

Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information. >>> import MySQLdb
>>>

2、主要命令:

一个小程序包含常用命令:(MySQLdb将所有值视为字符串值,即使其底层数据库类型为bigint, double, date...)

import MySQLdb

try:
i = 0
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='root',db='test',port=3306) #连接本地数据库
cur = conn.cursor() #所有操作都依赖于游标,是核心部分
cur.execute('select * from typetotablename') #查询语句
#带参数的:cursor.execute("insert into colors(color, abbr) values(%s, %s)", ('blue', 'bl'))
rows = cur.fetchall() #获取所有行数据,每行数据还可以循环获得每列的具体数据 相当于[][]
for row in rows:
print row
  cur.close()
conn.close()
except MySQLdb.Error,e:
print str(e)

3、相关函数说明:(参考http://drizzlewalk.blog.51cto.com/2203401/448874)

3.1  MySQLdb.connect(host="",user="",passwd="",db="",charset="",port=3306)

比较常用的参数包括 
host:数据库主机名.默认是用本地主机. 
user:数据库登陆名.默认是当前用户. 
passwd:数据库登陆的秘密.默认为空. 
db:要使用的数据库名.没有默认值. 
port:MySQL服务使用的TCP端口.默认是3306.

更多关于参数的信息可以查这里 :
http://mysql-python.sourceforge.net/MySQLdb.html

3.2 fetch函数

fetchall():  接收全部的返回结果行. 
fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据. 
fetchone():返回一条结果行. 
scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.

3.3 commit函数

在执行了插入或是修改操作之后,一定记得加上con.commit(),这样操作才会起效!

4、 编码(防止乱码)

需要注意的点:

    1 Python文件设置编码 utf-8(文件前面加上
#encoding=utf-8)

    2 MySQL数据库charset=utf-8 
    3 Python连接MySQL是加上参数 charset=utf8 
    4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)

    #encoding=utf-8
import sys
import MySQLdb reload(sys)
sys.setdefaultencoding('utf-8') db=MySQLdb.connect(user='root',charset='utf8')

注:MySQL的配置文件设置也必须配置成utf8

设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集(通常在/etc/mysql/my.cnf):

[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8

上一篇:Python访问MySQL数据库


下一篇:CSS:与input相关的一些样式设置问题