Python2.7-sqlite3
sqlite3模块,SQLite 是用 C 写的轻量级的数据库,sqlite3 模块提供了对数据库的接口,要使用必须首先创建一个 Connection 对象,代表连接至数据库,然后才能继续操作,操作数据库的语句和操作别的数据库一样,都是 create、insert、select 等
模块方法和常数:
sqlite3.version、sqlite3.version_info:模块版本,分别以字符串和元组形式返回
sqlite3.sqlite_version、sqlite3.sqlite_version_info:SQLite 版本,分别以字符串和元组形式返回
sqlite3.PARSE_DECLTYPES、sqlite3.PARSE_COLNAMES:用于 detect_types 参数,设置了前者可以在创建数据库表的时候在每列数据名字后面加上数据类型,设置了后者可以在选择的时候在每列后面加上类似 'as "x [datetime]"' 来指定数据类型。大概是这样的意思,不是很了解
sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements]):连接至数据库 datebase(可以存在缓存中,用 ":memory:" ),timeout 设置连接解锁等待时间,在多个连接都连至一个数据库时,对数据库的修改会使他上锁,直到修改数据被提交。detect_types 默认没有,可以设置上面提到的两种。isolation_level 设置自动提交,一般默认。factory cached_statements 设置缓存语句数,默认100。
sqlite3.register_converter(typename, callable):设置如何把数据库类型名字为 typename 的数据转换成 python 类型,一般是自定义的类
sqlite3.register_adapter(type, callable):设置如何把 python 的 type 类型转换成数据库支持的类型,一般是自定义的类
sqlite3.complete_statement(sql):判断 sql 语句是否以分号结尾,不判断语法是否正确
模块的类:
1、Connection 对象
1.1 对象属性
isolation_level:获取或设置当前的 isolation_level
row_factory:可以把这个属性设置成一个接收 cursor 和 row 两个参数的可调用对象,这样就可以用更好的方式返回结果。内置有 sqlite3.Row
text_factory:默认为 unicode,会把数据库的 TEXT 属性返回为 Unicode 对象,设置成 str 可以返回字符串,内置还有 sqlite3.OptimizedUnicode,可以对不是 ASCII 数据的转成 unicode 对象,其余转成字符串
total_changes:返回打开数据库后所有改动总和
1.2 对象方法
cursor(factory=Cursor):创建一个 cursor 对象
commit():提交修改,更新数据库
rollback():返回至上一次提交修改后的状态
close():关闭数据库连接,不会自动调用 commit
execute(sql[, parameters]):执行 sql 语句,会隐式创建一个 cursor
executemany(sql[, parameters]):利用传入的 parameters 执行 sql 语句多次,会隐式创建一个 cursor
executescript(sql_script):执行一堆 sql 语句,会隐式创建一个 cursor
create_function(name, num_params, func):创建一个可以用于 SQL 语句里的函数,名字为 name,接收 num_params 个参数,func 为 python 的一个可调用对象
create_aggregate(name, num_params, aggregate_class):创建一个可以用于 SQL 语句里的自定义合计函数,名字为 name,接收 num_params 个参数,aggregate_class 类必须要定义有 step() 函数接收参数,finalize() 函数返回数据库支持类型的合计结果
create_collation(name, callable):创建一个可以用于 SQL 语句里的自定义排序函数,名字为 name,callable 通常会接收 utf8 编码的两个字符串,返回 -1 代表前者小于后者,0 代表相等,1 代表前者大于后者
interrupt():从另一个线程里打断正在进行的操作
set_authorizer(authorizer_callback)、set_progress_handler(handler, n):注册一个回调函数,不知道怎么用
enable_load_extension(enabled):设置是否允许加载扩展共享库
load_extension(path):从 path 加载扩展共享库
iterdump():返回一个迭代器,包含了以数据库 TEXT 格式表示的数据,对把数据从内存中保存至磁盘很有用
2、Cursor 对象,操作数据库的游标
2.1 对象属性
rowcount:只要没使用过 executeXX() 这类方法,返回都是 -1,使用过的话会累加
lastrowid:只读属性,只有刚执行过 insert 操作才会返回值,否则都是 None
description:只读属性,返回上一次访问的列的名字
connection:只读属性,返回 Cursor 的 Connection 对象
2.2 对象方法
execute(sql[, parameters])、executemany(sql, seq_of_parameters)、executescript(sql_script):执行对应 sql 语句,同 Connection 对象
fetchone():返回下一行数据
fetchmany([size=cursor.arraysize]):列表形式返回数据,大小指定为 size
fetchall():返回剩下的所有数据
3、Row 对象,用于 Connection 对象的 row_factory 属性,可以使返回结果像个带名字元组
3.1 对象方法
keys():返回结果中各列的名字,可以用这些名字访问属性
Python2.7-sqlite3的更多相关文章
- [原创] 更新Ubuntu自带的python2.X版本 ImportError: No module named pip;ImportError: No module named _sqlite3
Ubuntu14.04自带的Python2版本,是2.7.6的,想更新为最新的2.7.11,操作如下: 1. 从python官网下载2.7.11的source源码包 Python-2.7.11.tgz ...
- python加载sqlite3报错:No module named _sqlite3
环境为Ubuntu16.04 Apache2.4 Python2.7.13 django 1.8 今天部署apache+django,经过各种折腾,好不容易配置完了,发现错误Apache的日志里有一项 ...
- 源码安装ipython,并在ipython中整合spark
一.安装ipython 下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b9 ...
- 利用ngxtop实时监控nginx的访问情况
关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目 ...
- Python学习笔记总结(二)函数和模块
一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句 例子 Calls myfunc(‘diege', ...
- ImportError: No module named _sqlite3 - 代码分享
ImportError: No module named _sqlite3 - 代码分享 ImportError: No module named _sqlite3 作者:86市场网 点击 ...
- from setuptools import setup, find_packages ImportError: No module named set
1 from setuptools import setup, find_packages ImportError: No module named set wget http://peak.tele ...
- 通过ngxtop实时监控webserver的访问情况 / 解决ImportError: No module named _sqlite3问题
通过ngxtop实时监控webserver的访问情况 2014-04-03 0个评论 来源:通过ngxtop实时监控web server的访问情况 收藏 我要投稿 关于对ng ...
- pandas.DataFrame——pd数据框的简单认识、存csv文件
接着前天的豆瓣书单信息爬取,这一篇文章看一下利用pandas完成对数据的存储. 回想一下我们当时在最后得到了六个列表:img_urls, titles, ratings, authors, detai ...
- simple-todo: 一个简易的 todo 程序 - django版
今天无意间看到 simple-todo: 一个简易的 todo 程序 - web.py 中文教程 ,然后发现竟然有好多的版本 http://simple-is-better.com/news/tag ...
随机推荐
- redis主从|哨兵|集群模式
关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...
- Django REST framework基础:版本、认证、权限、限制
1 认证.权限和限制 2 认证 2.1 自定义Token认证 2.1.1 表 2.1.2 定义一个登录视图: 2.1.3 定义一个认证类 2.1.4 视图级别认证 2.1.5 全局级别 ...
- python短信发送
'''以云之讯平台为例:''' url = 'https://open.ucpaas.com/ol/sms/sendsms' # 账户sidsid = 'f0ad70b276a8b63eb44f415 ...
- Flask结合Redis消息队列实现电影弹幕
用到的弹幕播放器插件:dplayer.js(开源) 1.安装Redis 2.安装flask-redis包 pip install flask-redis3.下载dplayer 页面搭建 1.引入资源 ...
- NetBeans 打开项目中文乱码最简单的解决办法
网上各种修改配置文件,中文乱码还是没有解决,其实不是NetBeans的问题,是编辑器设置的字符集不支持中文,最简单的办法:!!! 设置新字体即可 !!!
- Jenkins自动构建的几种方式
1.远程URL构建 在任务配置处的构建触发器中选择远程触发,例如,在下图框中输入abc,则只需要在网页上输入地址:Jenkins_URL/job/工程名/build?token=abc 2.利用cur ...
- centos7 安装 jdk1.8
首先是Linux的不同版本的额系统自带的配置是不一样的,比如centos6上有的自带的jdk环境的话要装1.8的就要进行卸载或者马上进行更改 jdk是java程序依赖的环境 首先查看你的系统下是否有j ...
- alsa声卡分析alsa-utils调用过程(一)-tinyplay
如何分析tinyplay 播放音频和tinymix的过程?需要相应的工具来支持追查: 一.分析tinyplay和tinymix: 1.1 利用strace工具: strace -o tinyplay. ...
- CentOS7 配置静态 ip
1. 为 CentOS7 配置静态 ip 1.1 修改文件/etc/sysconfig/network-scripts/ifcfg-ens33 sudo vi /etc/sysconfig/netwo ...
- Python实例--12306的抢票功能
基础知识学习 目标: 通过python程序实现自动登录下单功能 知识点: Selenium + 云打码 + Python 学习链接: 1. Python学习--Selenium模块 2. Python ...