加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

简单的sqlite3数据库操作实例

发布时间:2020-12-17 17:15:33 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import sqlite3class database: def __init__(self,**kwargs): self.filename = kwargs.get('filename') self.table = kwargs.get('table','test') de

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import sqlite3

class database:
    def __init__(self,**kwargs):
        self.filename = kwargs.get('filename')
        self.table = kwargs.get('table','test')
    
    def sql_do(self,sql,*params):
        self._db.execute(sql,params)
        self._db.commit()
    
    def insert(self,row):
        self._db.execute('insert into {} (t1,i1) values (?,?)'.format(self._table),(row['t1'],row['i1']))
        self._db.commit()
    
    def retrieve(self,key):
        cursor = self._db.execute('select * from {} where t1 = ?'.format(self._table),(key,))
        return dict(cursor.fetchone())
    
    def update(self,row):
        self._db.execute(
            'update {} set i1 = ? where t1 = ?'.format(self._table),(row['i1'],row['t1']))
        self._db.commit()
    
    def delete(self,key):
        self._db.execute('delete from {} where t1 = ?'.format(self._table),))
        self._db.commit()

    def disp_rows(self):
        cursor = self._db.execute('select * from {} order by t1'.format(self._table))
        for row in cursor:
            print('  {}: {}'.format(row['t1'],row['i1']))

    def __iter__(self):
        cursor = self._db.execute('select * from {} order by t1'.format(self._table))
        for row in cursor:
            yield dict(row)

    @property
    def filename(self): return self._filename

    @filename.setter
    def filename(self,fn):
        self._filename = fn
        self._db = sqlite3.connect(fn)
        self._db.row_factory = sqlite3.Row

    @filename.deleter
    def filename(self): self.close()

    @property
    def table(self): return self._table
    @table.setter
    def table(self,t): self._table = t
    @table.deleter
    def table(self): self._table = 'test'

    def close(self):
            self._db.close()
            del self._filename

def main():
    db = database(filename = 'test.db',table = 'test')

    print('Create table test')
    db.sql_do('drop table if exists test')
    db.sql_do('create table test ( t1 text,i1 int )')

    print('Create rows')
    db.insert(dict(t1 = 'one',i1 = 1))
    db.insert(dict(t1 = 'two',i1 = 2))
    db.insert(dict(t1 = 'three',i1 = 3))
    db.insert(dict(t1 = 'four',i1 = 4))
    for row in db: print(row)

    print('Retrieve rows')
    print(db.retrieve('one'),db.retrieve('two'))

    print('Update rows')
    db.update(dict(t1 = 'one',i1 = 101))
    db.update(dict(t1 = 'three',i1 = 103))
    for row in db: print(row)

    print('Delete rows')
    db.delete('one')
    db.delete('three')
    for row in db: print(row)

if __name__ == "__main__": main()

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读