python在2.5版以后,就自带了sqlite3模块,直接import即可。
模块可用后,就可以实现连接sqlite数据库的功能。sqlite3数据库与mysql不同,它每一个库叫做一个文件,连接的时候,库名即文件名,库内的表则操作方法与mysql相同,或许支持的sql语句会有一些差异。
我根据连接mysql的操作方法的包装,改写成了这个sqlite数据库连接模块。附件有这个源码。
#coding=gbk
import os,sys,string
import sqlite3
import traceback
class SQLObj(object):
def __init__(self, db = 'youmoney'):
self.db_name = db
self.connected = 0
self.cur = None # 指针对象
self.conn = None # 连接对象
self._connect()
def _connect(self):
try:
#print "connect to ", self.db_name
self.conn = sqlite3.connect(self.db_name)
self.cur = self.conn.cursor()
self.connected = 1
except:
traceback.print_exc()
self.connected = 0
@property
def is_connected(self):
return self.connected != 0
def _check_alive(self):
if not self.is_connected:
self._connect()
if not self.is_connected:
raise "Can't connect to sqlite3"
#直接提取方法
def query(self, sql, warning=1):
self._check_alive()
try:
cur = self.conn.cursor()
cur.execute(sql)
res = cur.fetchall()
cur.close()
except:
if warning:
traceback.print_exc()
return None
return res
#特殊的提取方法,形成字典返回
def dquery(self, sql, warning=1):
self._check_alive()
try:
cur = self.conn.cursor()
cur.execute(sql)
des = cur.description #获取字段描述
res = cur.fetchall() #获取字段内容
ret = []
if des:
names = [x[0] for x in des] #从des中提取每个元素(列表)的第一个元素(字符串)
for line in res:
ret.append(dict(zip(names, line))) #dict是形成字典的工厂函数,zip用于多个列表循环(name, line是两个列表)
else:
ret = res
cur.close()
except:
if warning:
traceback.print_exc()
return None
return ret
def execute(self, sql, warning=1):
self._check_alive()
try:
cur = self.conn.cursor()
rows = cur.execute(sql)
self.conn.commit()
cur.close()
return rows
except:
if warning:
traceback.print_exc()
return -1
def close(self):
if self.connected == 0:
return
try:
self.cur.close()
self.conn.close()
self.connected = 0
except:
pass
def __del__(self):
self.close()
def _lbsql_test_sqlite3():
db = SQLObj(db = "youmoney.db")
lists = db.dquery("select * from capital")
for l in lists:
for k, v in l.items():
print "%s: %s" %(k, v),
break
break
if __name__ == "__main__":
_lbsql_test_sqlite3()
分享到:
相关推荐
aiosqlite 为 sqlite 数据库提供了一个友好的异步...它复制了标准sqlite3模块,但具有所有标准连接和游标方法的异步版本,以及用于自动关闭连接和游标的上下文管理器: 更多详情、使用方法,请下载后阅读README.md文件
很多年前写的一个sqlite通用类模块。...该类的使用方法见sqldb.h,该头文件有具体的使用示例。 其中 libPublic.h没上传,里面只用到数据类型的定义(如BOOL,类printf函数 等,可在各平台编译自行补上)。
它复制标准的sqlite3模块,但具有所有标准连接和游标方法的异步版本,以及用于自动关闭连接和游标的上下文管理器: async with aiosqlite.connect(...) as db: await db.execute("INSERT INTO some_table ...") ...
* sqlite3: sqlite3 模块提供了SQLite数据库访问的接口。SQLite数据库是以一个文件或内存的形式存在的自包含的关系型数据库。 * DBM-style 数据库模块:python提供了打了的modules来支持UNIX DBM-style数据库文件。...
sqlite3paramstyle sqlite3模块的扩展paramstyle 为遵循以下paramstyles到sqlite3模块提供兼容性。 ANSI C printf格式代码,例如... WHERE name =%s Python扩展格式代码,例如... WHERE name =%(name)s 在2.7.8...
(3)资产折旧管理模块:根据不同的折旧方法计算资产的折旧金额和残值 (4)维修管理模块:增删改查维修记录信息 (5)员工和部门管理模块:可以添加删除员工和部门 (6)权限管理模块:记录员工和部门的权限信息 ...
python 连接数据库操作, 方法如下: 在本机的mysql 数据库中有一个名为yao的库,其中有一个名为user的表,表中的内容如图 下面,则是python连接数据库的方法,及查找出表中的内容,代码如下: #! /usr/bin/python #...
第1部分讲述用特殊方法实现Python风格的类,分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型...
第1部分讲述用特殊方法实现Python风格的类,分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型...
在Python环境中安装SQLite可加载扩展的简便方法。 安装 pip install sqlite_uuid 笔记 当您安装此软件包时,将构建一个SQLite。 在Python中,您可以通过两种方式加载扩展。 第一步是使用conn.enable_load_extension...
EasySQL找到一个更易用的sql orm: ,所以再见 easysql。抽取自中数据库操作相关模块。原有代码是基于mysql的python驱动写成的,使用方法戳。...做点小应用 sqlite3 足够了sqlite3 版的使用方法戳。
安装必要的Python库,如sqlite3、flask或django。 根据需要配置数据库连接和编码规则。 编码规则设置: 使用CodeRule类创建和验证编码规则。 调用generate_code方法生成新的编码。 编码查询: 调用query_code方法...
sqlalchemy-s3sqlite 将sqlite数据库保留在s3中,以与AWS Lambda一起使用该模块允许在AWS Lambda内部使用Flask-User。 通常,sqlite数据库将在两次调用之间随机消失。 该模块将根据需要将数据库复制到s3存储或从s3...
8.1 基于sqlite3的轻量级访问 181 8.2 通过pandas访问数据库 183 8.3 SQLAlchemy 185 8.3.1 SQLAlchemy的安装和配置 186 8.3.2 通过SQLAlchemy填充数据库 188 8.3.3 通过SQLAlchemy查询数据库 189 8.4 Pony ...
可以使用以下方法从PyPi安装该模块: pip install tibiawikisql 安装后,您可以使用以下任何地方运行命令: python -m tibiawikisql generate 或者 tibiawikisql 该过程可能很长,第一次可能要花费20分钟。 ...
1.9 简化字符串的translate方法的使用 18 1.10 过滤字符串中不属于指定集合的字符 20 1.11 检查一个字符串是文本还是二进制 23 1.12 控制大小写 25 1.13 访问子字符串 26 1.14 改变多行文本字符串的缩进 29 ...
学习Pyttlon中有关数据库的API,以及如何在Pyttlon中使用各种不同的数据库系统,包括MySQL、Postgres和SQLite。 本书提供: 对Python核心特性系统的专家级讲解; 开发复杂的应用程序和软件所需的强大深入的...
python manager.py db upgrade(更新数据库,第一次使用该命令会新建一个数据库data-dev.sqlite) 部署程序, python manager.py deploy 在本地运行程序, python manager.py runserver打开 http://127.0.0.1:5000 端口...
适用于UN / LOCODE的Python包装模块 版本 0.9 UN / LOCODE数据 来自数据 CSV“ {yyyy}-{v} SubdivisionCodes.csv”和“ {yyyy}-{v} UNLOCODE CodeListPart?.csv”的参考数据 执行 解析CSV文件并存储到sqlite DB中 ...