默认情况下Python中并没有安装MySQLdb,因此,在使用之前,我们要先安装MySQLdb。
首先要下载MySQL-Python,下载地址是https://pypi.python.org/pypi/MySQL-python/,这里我选择的是最新版的1.2.5版本。
下载完成之后,将文件解压到合适的位置。
进入解压后MySQL-python-1.2.5目录,然后执行命令python setup.py install进行安装。
安装时踩过的坑
按照以上步骤并没有顺利安装好MySQL-python。这里将我遇到的两个问题及解决办法分享给大家,供大家参考。
- 安装时提示ImportError: No module named setuptools。这是因为环境中缺少setuptools模块。对于Ubuntu自带的2.x版本,可以执行命令wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python;对于python3.x版本https://bootstrap.pypa.io/ez_setup.py -O - | sudo python 3
- 安装时提示EnvironmentError: mysql_config not found。这是因为没有安装libmysqlclient-dev。可以直接执行命令sudo apt-get install libmysqlclient-dev进行安装。 安装好MySQL-python后,可以直接import MySQLdb进行测试。
在Pycharm中使用MySQLdb
由于我习惯在Pycharm中写python代码。在安装好之后,在终端测试没问题后,我以为可以开心的在Pycharm中写操作数据库的代码了。然而运气似乎没有想象的那么好,代码中的import MySQLdb依然报错。这里是因为Pycharm中所使用的的环境与终端的环境不同。在新建项目时,Pycharm默认在项目的目录下搭建了一个python的运行环境。这里要进行修改。
- 按Ctrl+Alt+S打开设置页,进入Project Interpreter选项。
点击右侧
按钮,选择添加本地环境。找到本地python命令的路径进行添加。这样就可以在Pycharm中编写Python操作数据库的代码了。
Python操作数据库基础
在进行数据库操作之前,首先要明确两个概念:连接对象和游标对象。下面我们一一进行介绍
连接对象
用于建立Python客户端与数据库的连接。 创建方法是MySQLdb.connect(参数)
参数 | 类型 | 说明 |
host | 字符串 | MySQL服务器地址 |
port | 数字 | MySQL服务器端口号 |
user | 字符串 | 用户名 |
passwd | 字符串 | 密码 |
db | 字符串 | 数据库名称 |
charset | 字符串 | 连接编码 |
连接对象支持的方法如下:
方法名 | 说明 |
cursor() | 使用该连接创建并返回游标 |
commit() | 提交当前事务 |
roolback() | 回滚当前事务 |
close() | 关闭连接 |
游标对象
用于执行查询和获取结果。 游标对象支持的方法如下:
方法名 | 说明 |
execute(op[,arg]) | 执行一个数据库查询和命令 |
fetchone() | 取结果集的下一行 |
fetchmany(size) | 取结果集的下几行 |
fetchall() | 取结果集剩下所有行 |
rowcount | 最近一次execute返回数据的行数或影响行数 |
close() | 关闭游标对象 |
Python操作数据库基础
可以使用execute方法执行SQL语句,支持占位符。例如,如果要向数据库中添加一条记录,代码如下:
cursor.execute("INSERT INTO rkeys(key_value) VALUES ('%s')" % i)
其中i必须为字符串。 执行之后,可以根据需要,对执行commit或rollback操作。 最后,还需要关闭游标对象和连接对象。