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窗口,然后进入目 ...
随机推荐
- SpringBoot学习笔记(6) SpringBoot数据缓存Cache [Guava和Redis实现]
https://blog.csdn.net/a67474506/article/details/52608855 Spring定义了org.springframework.cache.CacheMan ...
- MVC过滤器处理Session过期
一.自定义一个Action过滤器 public class CheckSession: ActionFilterAttribute { public override void OnActionExe ...
- PHP的SQL语句优化
(转)仅供自己学习,特此转发 普遍遇到的慢SQL有以下三种: 1.未走索引 2.where条件里包含子查询,多表联查 3.查询大量数据 解决 一.索引:SQL中的高速公路 但凡优化SQL,首先要看的就 ...
- DAY1初识Python----变量及命名规则,注释,数据类型,常量,交互
1.认识和了解python python是一门解释型语言,弱类型语言 2.python发展史 2008年 2.X,3.X 3.第一个python程序 python语句可以写在命令行中,进行编 ...
- 关于ComponentName组件名称的使用
ComponentName,顾名思义,就是组件名称,通过调用Intent中的setComponent方法,我们可以打开另外一个应用中的Activity或者服务. 实例化一个ComponentName需 ...
- 【BZOJ3894】【Luogu3358】文理分科 - 最小割多选一模型
链接Click Here 这个题就是个板子的最小割多选一模型啦\(QwQ\),这里介绍一种通用的解法. 抛开组合收益不谈,这个题就是一个简单的最小割模型.我们只需要建出来这样一张图,在上面跑最小割,割 ...
- Java基础构造方法和this关键字整理
构造方法 8.1构造方法介绍 构造方法的格式: 修饰符 构造方法名(参数列表) { } l 构造方法的体现: n 构造方法没有返回值类型.也不需要写返回值.因为它是为构建对象的,对象创建完,方法就 ...
- RocketMQ_问题_启动报错,修改堆内存大小
1.启动broker报错 虚拟机内存小,导致虚拟机中的JVM内存小,进而在启动broker时分配JVM内存遇到问题 查询网上得知,查看/usr/local/rocketmq-all-4.3.0/dis ...
- ansible基础-ansible角色的使用
ansible基础-ansible角色的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们建议把多个节点都会用到的功能将其定义模块,然后谁要用到该模块就直接调用即可!而在a ...
- Spring Boot笔记六:Thymeleaf介绍
目录 什么是thymeleaf? 创建最简单的thymeleaf thymeleaf语法 什么是thymeleaf? thymeleaf是一个模板引擎,是用来在Spring Boot中代替JSP的 引 ...