简单的sqlite3数据库操作实例
发布时间:2020-05-29 00:36:45 所属栏目:Python 来源:互联网
导读:简单的sqlite3数据库操作实例
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 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()
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
