创建:

create_Email = "CREATE TABLE if not exists emails (\n\
id INTEGER NOT NULL,\n\
user VARCHAR(64),\n\
email VARCHAR(64),\n\
PRIMARY KEY (id)\n\
);"

try:

sqlite_conn=sqlite3.connect(DB_SQLITE_NAME)

sqlite_cursor.execute(create_Email)
    sqlite_conn.commit()

except sqlite3.Error,e:
    traceback.print_exc()
    sqlite_conn.rollback()
finally:
    sqlite_conn.close()

面向对象:
class Email(object):
    """docstring for Email"""
    def __init__(self):
        self.emails = []
        lines=self._get()
        if lines != None and lines != 'failed':
            for line in lines:
            email = {}
            email['id'] = line[0]
            email['user'] = line[1]
            email['email'] = line[2]
            self.emails.append(email)

def _list_all_member(self):
        tmp_str=''
        for name,value in vars(self).items():
            if value != None:
                if type(value) == int:
                    tmp_str=tmp_str+name+'='+str(value)+','
                else:
                    tmp_str=tmp_str+name+'='+"'"+str(value)+"'"+','
        return tmp_str

def _list_all_member_insert(self,email):
        tmp_str=''
        value_str=' VALUES ('
        for name,value in email.items():
            if value != None:
                tmp_str+=name+','
                if type(value)==int:
                    value_str+=str(value)+','
                else:
                    value_str+="'"+str(value)+"'"+','
                tmp_str=tmp_str.strip(',')+')'
                value_str=value_str.strip(',')+')'
        return tmp_str,value_str

def _get(self):
        try:
            rows = []
            sqlite_conn=sqlite3.connect(DB_SQLITE_NAME)
            sqlite_cursor=sqlite_conn.cursor()
            sql_select="SELECT * FROM EMAILS;"
            sqlite_cursor.execute(sql_select)
            for row in sqlite_cursor:
                rows.append(row)
            return rows
        except sqlite3.Error,e:
            return 'failed'
        finally:
            sqlite_conn.close()

def delete(self,id):
        for email in self.emails:
            if email['id'] == id:
                self.emails.remove(email)
                sql_delete= "DELETE FROM EMAILS WHERE id = '" + id + "';"
                local_sql_exe(sql_delete)

def add(self,email):
        self.emails.append(email)
        sql_insert='INSERT INTO EMAILS ( '
                name_str,value_str=self._list_all_member_insert(email)
        sql_insert+=name_str+value_str
        local_sql_exe(sql_insert)

def clear(self):
        self.emails = []
        sql_delete= "DELETE FROM EMAILS;"
        local_sql_exe(sql_delete)

调用:

from sqlite import Email

email= Email()

email.emails

email.add(email)

email.delete(id)

2018.5.8 python操纵sqlite数据库的更多相关文章

  1. [python]用Python进行SQLite数据库操作

    用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~  ]: u ...

  2. Python操作sqlite数据库小节

    学习了Python操作sqlite数据库,做一个小结,以备后用. import sqlite3import os# 进行数据库操作时,主要是参数如何传输try:# 链接数据库conn=sqlite3. ...

  3. Python操作SQLite数据库的方法详解

    Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...

  4. python操作sqlite数据库

    root@cacti:~/box# cat convert.py #!/usr/bin/env python import sqlite3,time,rrdtool,os def boxstatus( ...

  5. python 操作sqlite数据库

    '''SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说 没有独立的维护进程,所有的维护都来自于程序本身. 在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不 ...

  6. 用Python进行SQLite数据库操作

    简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经 ...

  7. Python 操作 SQLite 数据库

    写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 MongoDB,都需要我们安装.安装之后,然后运行起来 ...

  8. Python 操作sqlite数据库及保存查询numpy类型数据(二)

    # -*- coding: utf-8 -*- ''' Created on 2019年3月6日 @author: Administrator ''' import sqlite3 import nu ...

  9. Python 操作sqlite数据库及保存查询numpy类型数据(一)

    # -*- coding: utf-8 -*- ''' Created on 2019年3月6日 @author: Administrator ''' import sqlite3 import nu ...

随机推荐

  1. python 统计单词个数,并按个数与字母排序

    # coding: utf-8 # In[1]: import collections str = "Be slow to promise and quick to perform" ...

  2. js 回调

    function getTittleLableData(callback) { $.ajax({ type : 'POST', url : ctx + '/feeInf/getDataValue', ...

  3. TCP/IP OPTION字段

    0x01 简介 TCP头部和IPV4头部除了固定的20字节外,都设置了 OPTION 字段用于存储自定义的数据,因为TCP头部和IPV4的报文长度字段均为4字节,所表示的最大值为15, 乘4,报文头部 ...

  4. Triangle Count

    Given an array of integers, how many three numbers can be found in the array, so that we can build a ...

  5. 安装SQl Server 报错 "需要 Microsoft.NET Framework 3.5 ServicePack 1" 解决方法

    前言 之前装Sql Server都没遇到过这样的问题, 昨天重装了系统之后, 然后安装SQl Server 报错,提示 "需要 Microsoft.NET Framework 3.5 Ser ...

  6. sql表中数据遍历

    步骤: 1:先定义一个临时表,把需要用的数据放入临时表中,如果数据不连续,则在临时表中定义一个自增长键 DECLARE @temp table(Id INT IDENTITY(1, 1) ,ShopC ...

  7. SecureCRT标签显示标题

  8. ionic2中使用datetime组件如何默认设置当前时间?

    HTML: <ion-item> <span item-left style="min-height: 27px;">存款日期/时间</span> ...

  9. 吴恩达机器学习笔记5-Octave基本操作

    1.逻辑运算 1==2 %false :注释用%,这句话意思是判断1是否等于2,false,输出0 1~=2 %true  1不等于2 为true,输出为1 1&&0 %and 1|| ...

  10. 解决getElementsByClassName()在IE8下的兼容问题

    getElementsByClassName,这个方法让我们可以通过 class 属性中的类名来访问元素,但是IE9 以下的浏览器不支持 .为解决这个问题,我们写一个兼容函数 getByClass() ...