`

python的sqlite3连接模块用法

 
阅读更多

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()

  

分享到:
评论

相关推荐

    2014年辛星Python数据库Sqlite3教程

    Python的sqlite3模块提供了一系列操作数据库的接口,允许Python程序通过简单的API调用来执行SQL语句,从而实现数据库的操作。这些操作不仅包括基本的增删改查,还可以进行复杂的查询和事务管理。在Python中使用...

    到标准 sqlite3 模块的异步桥接_python_代码_下载

    aiosqlite 为 sqlite 数据库提供了一个友好的异步...它复制了标准sqlite3模块,但具有所有标准连接和游标方法的异步版本,以及用于自动关闭连接和游标的上下文管理器: 更多详情、使用方法,请下载后阅读README.md文件

    Python SQLite3简介

    在Python中使用SQLite3,首先要创建一个数据库连接对象。例如: ```python import sqlite3 conn = sqlite3.connect('mysql_person.db') ``` 这里的`connect()`函数用于连接到数据库,如果指定的数据库文件不存在,它...

    Python 访问 Sqlite 封装 实体,实现 增删改查

    在Python中,我们可以使用sqlite3模块来与SQLite数据库进行交互。`yc.db`可能包含了一些预先创建的表和数据,这些数据将被我们的Python程序访问和操作。 接下来是`main.py`,这是主程序文件。在这个文件中,我们...

    python 创建sqlite数据库

    首先,你需要导入Python的sqlite3模块,它是Python标准库的一部分,提供了与SQLite数据库交互的接口。在Python环境中,输入以下代码: ```python import sqlite3 ``` 接下来,我们创建一个连接到SQLite数据库的...

    python 用sqlite3

    下面将详细介绍sqlite3模块的使用方法以及相关的知识点。 1. 安装与导入: Python的sqlite3模块通常在标准安装中就已经包含了,无需额外安装。在Python环境中,可以直接通过`import sqlite3`来引入这个模块。 2. ...

    SqliteDB.rar_python sqlite

    在Python中,使用`sqlite3.connect()`函数创建到SQLite数据库的连接。数据库文件名可以是任意字符串,但通常以`.db`为扩展名。例如: ```python import sqlite3 conn = sqlite3.connect('example.db') ``` 2. ...

    sqlite3封装类

    很多年前写的一个sqlite通用类模块。...该类的使用方法见sqldb.h,该头文件有具体的使用示例。 其中 libPublic.h没上传,里面只用到数据类型的定义(如BOOL,类printf函数 等,可在各平台编译自行补上)。

    Python库 | sqlite_utils-1.2.2-py3-none-any.whl

    sqlite_utils库是David Beazley开发的一个Python模块,主要面向Python 3.x版本。该库的核心特性在于它提供了一系列高级API,使得创建表、插入数据、执行查询以及对数据库进行各种操作变得极其便捷。其1.2.2版本的whl...

    Python中的Sqlite.pdf

    在Python中使用SQLite通常不需要额外安装,因为Python标准库中已经包含了`sqlite3`模块,它是Python官方支持的SQLite接口。对于较旧的Python版本,可能需要从官方网站下载并安装PySqlite。 2. **创建/打开数据库**...

    xlrd_pythonsqlite_pythonexcel_

    本项目标题"xlrd_pythonsqlite_pythonexcel_"揭示了使用Python的两个关键库:`xlrd`用于读取Excel文件,`sqlite3`用于与SQLite数据库交互。以下是对这些知识点的详细说明: 1. **xlrd库**: - `xlrd`是Python的一...

    Python下json+redis+pymysql+sqlite3依赖模块

    `sqlite3`库提供了简洁的API,使得在Python程序中创建、打开、查询和管理SQLite数据库变得非常容易,特别适合于轻量级的桌面应用或移动应用。 结合这些库,开发者可以构建一个强大的数据处理系统。例如,使用`json`...

    python模块之sqlite数据库

    #### 二、Python中的SQLite模块 Python的标准库自2.5版本起内置了`sqlite3`模块,使得在Python中使用SQLite数据库变得非常方便。此模块遵循Python数据库API v2.0规范,提供了统一的操作接口。 #### 三、使用SQLite...

    Python库 | mysql_to_sqlite3-1.2.10-py2.py3-none-any.whl

    然后,他们可以通过导入`mysql_to_sqlite3`模块,在Python代码中调用其提供的函数和方法来执行数据库迁移任务。 总之,`mysql_to_sqlite3`是一个方便的Python工具,用于在MySQL和SQLite3之间进行数据迁移。它简化了...

    Python高级编程_SQLite_Introduction to Programming Using Python

    Python提供了sqlite3模块来与SQLite数据库进行交互,使得Python开发者可以轻松地处理数据存储和查询任务。 首先,我们需要了解如何安装和导入Python的sqlite3模块。在大多数Python环境中,sqlite3是默认预装的,...

    python使用sqlite3时游标使用方法

    Python中的sqlite3模块是用于与SQLite数据库交互的标准库,它提供了简单易用的API来执行SQL操作。SQLite是一个轻量级、嵌入式的数据库系统,适用于小型应用或测试环境,无需独立服务器进程,可以直接在应用程序中...

    python模块之sqlite数据库.pdf

    根据提供的文件内容,这里介绍的是Python编程语言中使用sqlite模块进行...以上知识点涵盖了Python中使用sqlite模块进行数据库操作的基本方法和常见操作,为开发者提供了利用Python对SQLite数据库进行操作的理论基础。

    Windows平台Python连接sqlite3数据库的方法分析

    Windows平台使用Python连接sqlite3数据库的方法: 在Windows平台上使用Python语言连接sqlite3数据库,是一种轻量级的数据库解决方案,适用于小型应用程序或演示项目,尤其适合那些不需要传统数据库服务器的场景。...

    Python sqlite3查询操作过程解析

    本篇文章将深入解析如何使用Python的sqlite3模块进行查询操作。 首先,了解如何获取SQLite数据库中的表信息。SQLite提供了一个名为`sqlite_master`的特殊表,存储了数据库的元数据。你可以通过查询此表来获得所有...

Global site tag (gtag.js) - Google Analytics