python DB-API
python为数据库访问开发了统一的API(Application Programming Interface,应用程序编程接口):DB-API.
MySQL的实现叫做MySQLdb,Oracle实现为Oracledb。
每个模块都包含一个connect()方法,它返回一个DB-API连接对象。
1、连接对象的API: 下面例子使用用户名/口令连接本地主机(localhost)上的MySQL数据库test.
>>> import MySQLdb
>>> conn = MySQLdb.connect(host='localhost', user='root',passwd='123456', db='test');
2、连接对象通过cursor()方法为应用提供一个游标:
cursor = conn.cursor()
游标是数据库访问的中心。通过execute()方法,可以向数据库发送SQL并处理任何结果。
例如1:使用MySQL连接所生成的游标向数据库插入了一个新行,然后通过输出受影响行的数目来验证插入。对于插入,这个值应当总为1.
>>> cursor.execute("INSERT test VALUES(5, 'test')");
1L
>>> print 'Affected rows: ', cursor.rowcount;
Affected rows: 1
例2:查询处理,使用execute()方法向数据库发送SQL.
>>> cursor.execute("SELECT id, username FROM test ORDER BY id");
4L
>>> for row in cursor.fetchall(): #游标对象提供的获取方法:fetchone()(返回一行元组,其中每个元素表示返回行中的一列), fetchmany()(处于fetchone()与fetchall()之间), fetchall()(从查询中获取所有结果,放在python元组列表中)
... print 'key: ', row[0];
... print 'value: ', row[1];
...
key: 1
value: John
key: 2
value: Mary
key: 9
value: Rose
key: 10
value: Hello
完成相应的操作后关闭连接:
>>> conn.close();
3、参数化SQL
参数化SQL是带有占位符的SQL语句,可以向其传递参数
cursor.execute( 'INSERT colors(cour, abbr) VALUES(%s, %s )', ('blue', 'bl') );
使用cursor.execute()一次只能插入一条记录,使用cursor.executemany()可以插入多条:
cursor.executemany("INSERT colors(cour, abbr) VALUES(%s, %s)", (('blue', 'bl'), ('purple', 'ppl'), ('orange', 'orn') ) );
python DB-API的更多相关文章
- Python DB API 连接数据库
Python DB API Mysql,Oracle,SqlServer 不关闭,会浪费资源.
- python3+Django1.11+mysql5.7 MySQL DB API Drivers
The Python Database API is described in PEP 249. MySQL has three prominent drivers that implement th ...
- 用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api
目前正在使用asp.net core 2.0 (主要是web api)做一个项目, 其中一部分功能需要使用js客户端调用python的pandas, 所以需要建立一个python 的 rest api ...
- 关于executemany()方法在不同OS和DB API下的不同表现的测试
昨天在参照着网上写一段关于MySQL连接池的配合gevent多线程调用的代码时遇到了一个问题,自己写的代码根本不能多线程执行,比单会话插入数据慢太多,直到今天早上才发现问题所在,把DB API从MyS ...
- Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案
Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案 1. 跨语言db api兼容性..1 2. 目前访问数据库的接口很多.比较常用的jdbc odbc 以 ...
- Python调用API接口的几种方式 数据库 脚本
Python调用API接口的几种方式 2018-01-08 gaoeb97nd... 转自 one_day_day... 修改 微信分享: 相信做过自动化运维的同学都用过API接口来完成某些动作.AP ...
- Python调用API接口的几种方式
Python调用API接口的几种方式 相信做过自动化运维的同学都用过API接口来完成某些动作.API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课. 本文主要介绍py ...
- Python Elasticsearch api,组合过滤器,term过滤器,正则查询 ,match查询,获取最近一小时的数据
Python Elasticsearch api 描述:ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.下 ...
- 如何用 Python 和 API 收集与分析网络数据?
摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...
- Python DB operation
mysql http://www.cnblogs.com/zhangzhu/archive/2013/07/04/3172486.html 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目 ...
随机推荐
- Python学习day4 数据类型Ⅱ(列表,元祖)
day4 知识补充&数据类型:列表,元祖 1.知识补充 1.编译型/解释型 编译型:在代码编写完成之后编译器将其变成另外一个文件教给你算计执行. 代表语言:Java,c,c++ ,c#, Go ...
- uWSGI+Nginx安装、配置
1.关闭SELINUX: [root@PYTHON27 /]# vim /etc/selinux/config 将SELINUX=enforcing修改为SELINUX=disabled 2.关闭防火 ...
- [SDOI2011]计算器(exgcd&BSGS)
k=1:裸的快速幂k=2:xy=z+kp,直接exgcd,这个可以不用解释了,不懂的同学可以看代码 k=3:裸的BSGS 重点是k=3(BSGS学习)ax=b(mod p)求解这个同余方程只能求gcd ...
- jasperreport
我们的报表要用FusionCharts.jasperreport
- http请求415错误Unsupported Media Type
王子乔 每一个认真生活的人,都值得被认真对待 http请求415错误Unsupported Media Type 之前用了封装的ajax,因为请求出了点问题,我试了下jQuery的$.ajax,报出了 ...
- keepalived+LVS实现网站负载均衡和HA
如上图所示,102和103是内网nginx服务器,100和101是边界LB,clinet是1,这个实验是为了实现在LB上虚拟出一个VIP,client通过访问该VIP,来动态负载到两台内网nginx服 ...
- linux之/proc
/proc是Linux或UNIX中的一种伪文件系统机制,提供了访问内核运行结构.改变内核设置的实时数据. 与ext4.NFS.FAT32等文件系统不同,/proc中的数据存放在内存而不是硬盘上. 在/ ...
- 2018acm-icpc青岛站后记
我要谢谢队友和出题人给了我这一个走出自闭的机会. 继上一个星期徐州因为1分钟的罚时痛失铜牌之后一度茶饭不思,深陷被铜牌支配的恐惧,孤注一掷将宝压到了下一站的青岛上. 幸好拿了银. 给浙大的出题人点赞, ...
- 信用评分卡Credit Scorecards (1-7)
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 python风控评分卡建模和风控常识 https://study.163.com/course/introductio ...
- u-boot(六)小结
目录 u-boot(六)小结 概述 内存分布 内核交互参数 title: u-boot(六)小结 tags: linux date: 2018-09-27 23:23:05 --- u-boot(六) ...