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窗口,然后进入目 ...
随机推荐
- 区块链使用Java,以太坊 Ethereum, web3j, Spring Boot
Blockchain is one of the buzzwords in IT world during some last months. This term is related to cryp ...
- Spring 官方教程:使用 Restdocs 创建 API 文档
https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247483998&idx=1&sn=6ae5fa795d36b1 ...
- @Async的简单用法总结
前言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时 候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3 ...
- git的使用命令
git archive --format zip --output "./test.zip" master -0 将项目的代码通过上述命令打包压缩为test文件夹 ssh-keyg ...
- 【洛谷 P1616 疯狂的采药】
题目背景 此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的 ...
- PHP的SQL语句优化
(转)仅供自己学习,特此转发 普遍遇到的慢SQL有以下三种: 1.未走索引 2.where条件里包含子查询,多表联查 3.查询大量数据 解决 一.索引:SQL中的高速公路 但凡优化SQL,首先要看的就 ...
- java eclipse 安卓环境配置
adt下载地址 http://www.runoob.com/w3cnote/android-tutorial-eclipse-adt-sdk-app.html 我的云 安卓学习 java htt ...
- selinux 的使用
SELinux 的启动.关闭与查看 1,并非所有的 Linux distributions 都支持 SELinux 的 目前 SELinux 支持三种模式,分别如下: •enforcing:强制模式, ...
- (排序的新方法)nyoj1080-年龄排序
1080-年龄排序 内存限制:234MB 时间限制:2000ms 特判: No通过数:148 提交数:575 难度:0 题目描述: JXB经常向HJS炫耀他们家乡那里有多么多么好,但是HJS大牛从来对 ...
- CentOS7利用systemctl添加自定义系统服务
CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit].[Service]和[Install] 转载于互联网 [Unit] 部分主要是对这个服务的说明,内容包括Descrip ...