Python中使用Mysql(编码实践)
来源:互联网 发布:淘宝网衣架 编辑:程序博客网 时间:2024/05/20 20:22
文档 或者看源码
http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-module.html
开篇
在上一篇Python中使用Mysql(安装篇)中,我们为Python安装了支持MySQL数据库的MySQLdb包,这篇中写的是我工作中最常用到的几种情形。
虽然也支持在Python中创建表,之类的操作。但在实际中很少是通过程序去创建一个数据库或一张表的。 这些工作一般都是由公司的DBA来完成。所以对于研发来说, 对数据库最常做的事情包括查询,插入行,和更新行。在实际工作中,删除一些行的行为也是不常用的,因为删除了就不容易回来,当不需要一些数据时,通常有一个代表 可用和不可用的字段,比如叫 enable。 当想删除一行时候,把这一行的enable置成0 来代替删除的动作。
情形一,查询一行
下面是一段查询代码小例子:
#!/usr/local/bin/python# coding:utf-8 import MySQLdbdb_handle = MySQLdb.connect(host = '10.10.10.10', user = 'root', passwd = '123456', db = 'test',port = 3306, charset = 'utf8') sql = "select * from test.user_info limit 1"cur = db_handle.cursor( MySQLdb.cursors.DictCursor )cur.execute( sql )result = cur.fetchone()cur.close()db_handle.close()print result['id']
请看这一句
cur = db_handle.cursor( MySQLdb.cursors.DictCursor )它使得上面的result是一个字典的对象,可以直接用索引来访问对应的字段。
情形二,查询多行
查询多行和查询一行基本一样,就是 用的是 fetchall() 代替 fetchone()
#!/usr/local/bin/python# coding:utf-8 import MySQLdbdb_handle = MySQLdb.connect(host = '10.10.0.10', user = 'root', passwd = '123456', db = 'test',port = 3306, charset = 'utf8')sql = "select * from user_info limit 3"cur = db_handle.cursor( MySQLdb.cursors.DictCursor )cur.execute( sql )result = cur.fetchall()cur.close()db_handle.close()if not result : for row in result: print row['id']
<pre name="code" class="python"><strong>if result == None :</strong>
这句对 fetchone()是有效的,但是对于 fetchall()是无效的,
推荐使用
<strong>if not result :</strong>
这样对于 None 或者 空的元组() 都是有效的。
fetchall()的返回是一个元组,所以不能直接取对应字段,通常我是用一个循环,来处理每一行的数据。
情形三,插入或者更新一行
插入和更新与 查询有不同之处在于 这个动作修改了数据库中的内容。 所以少了查询后fetch结果的动作,而换成了commit 提交的动作。 示例代码:
#!/usr/local/bin/python# coding:utf-8 import MySQLdbdb_handle = MySQLdb.connect(host = '10.10.10.10', user = 'root', passwd = '123456', db = 'test',port = 3306, charset = 'utf8')sql = "insert into fruit values ('','apple','fruit','red')"cur = db_handle.cursor( MySQLdb.cursors.DictCursor )cur.execute( sql )db_handle.commit()cur.close()db_handle.close()
0 0
- Python中使用Mysql(编码实践)
- Python中使用SQLAlchemy连接Mysql数据库3(事务,编码)
- Python最佳编码实践
- python中使用MySQL
- python中使用mysql
- python中使用MYSQL
- Python中使用MySQL
- Python中使用Mysql(安装篇)
- Python中使用中文及编码问题
- Python中使用chardet判断字符编码
- mysql-python安装(个人实践版)
- Python mysql实践小记
- 在python中使用mysql
- Python服务中使用MySQL
- python中mysql的使用
- python mysql中文编码
- python中使用文件的读取编码问题和简单正则使用(一)
- python中使用文件的读取编码问题和简单正则使用(二)
- java类的结构的内存解析
- Uboot启动流程分析
- C语言指针举例(From(新浪微博:@M了个J))学习笔记
- IP地址、子网掩码、默认网关、DNS服务器、DHCP服务器详解
- hdu 3183 A Magic Lamp (贪心)
- Python中使用Mysql(编码实践)
- DNS解析过程详解
- 织梦dedecms网站六大SEO优化技巧分享
- 制作ubuntu的U盘启动盘
- cyclone 中宏单元 的应用
- 2014秋C++ 第12周项目 C++函数新特征与递归函数
- 软件工程(八)——软件编码
- Linux 有问必答:在 Linux 上如何通过命令行来更改日期和时间
- errno.h头文件内容