python 的sqlite3连接模块用法

上传人:我*** 文档编号:136353317 上传时间:2020-06-28 格式:DOC 页数:14 大小:79.50KB
返回 下载 相关 举报
python 的sqlite3连接模块用法_第1页
第1页 / 共14页
python 的sqlite3连接模块用法_第2页
第2页 / 共14页
python 的sqlite3连接模块用法_第3页
第3页 / 共14页
python 的sqlite3连接模块用法_第4页
第4页 / 共14页
python 的sqlite3连接模块用法_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《python 的sqlite3连接模块用法》由会员分享,可在线阅读,更多相关《python 的sqlite3连接模块用法(14页珍藏版)》请在金锄头文库上搜索。

1、python在2.5版以后,就自带了sqlite3模块,直接import即可。模块可用后,就可以实现连接sqlite数据库的功能。sqlite3数据库与mysql不同,它每一个库叫做一个文件,连接的时候,库名即文件名,库内的表则操作方法与mysql相同,或许支持的sql语句会有一些差异。我根据连接mysql的操作方法的包装,改写成了这个sqlite数据库连接模块。附件有这个源码。Python代码1. #coding=gbk2. importos,sys,string3. importsqlite34. importtraceback5. 6. classSQLObj(object):7. de

2、f_init_(self,db=youmoney):8. self.db_name=db9. self.connected=010. self.cur=None#指针对象11. self.conn=None#连接对象12. self._connect()13. 14. def_connect(self):15. try:16. #printconnectto,self.db_name17. self.conn=sqlite3.connect(self.db_name)18. self.cur=self.conn.cursor()19. self.connected=120. except:21

3、. traceback.print_exc()22. self.connected=023. 24. property25. defis_connected(self):26. returnself.connected!=027. 28. def_check_alive(self):29. ifnotself.is_connected:30. self._connect()31. ifnotself.is_connected:32. raiseCantconnecttosqlite333. 34. #直接提取方法35. defquery(self,sql,warning=1):36. self

4、._check_alive()37. try:38. cur=self.conn.cursor()39. cur.execute(sql)40. res=cur.fetchall()41. cur.close()42. except:43. ifwarning:44. traceback.print_exc()45. returnNone46. returnres47. 48. 49. #特殊的提取方法,形成字典返回50. defdquery(self,sql,warning=1):51. self._check_alive()52. try:53. cur=self.conn.cursor(

5、)54. cur.execute(sql)55. 56. des=cur.description#获取字段描述57. res=cur.fetchall()#获取字段内容58. ret=59. ifdes:60. names=x0forxindes#从des中提取每个元素(列表)的第一个元素(字符串)61. forlineinres:62. ret.append(dict(zip(names,line)#dict是形成字典的工厂函数,zip用于多个列表循环(name,line是两个列表)63. else:64. ret=res65. cur.close()66. except:67. ifwar

6、ning:68. traceback.print_exc()69. returnNone70. returnret71. 72. defexecute(self,sql,warning=1):73. self._check_alive()74. try:75. cur=self.conn.cursor()76. rows=cur.execute(sql)77. mit()78. cur.close()79. returnrows80. except:81. ifwarning:82. traceback.print_exc()83. return-184. 85. defclose(self)

7、:86. ifself.connected=0:87. return88. try:89. self.cur.close()90. self.conn.close()91. self.connected=092. except:93. pass94. 95. def_del_(self):96. self.close()97. 98. def_lbsql_test_sqlite3():99. db=SQLObj(db=youmoney.db)100. lists=db.dquery(select*fromcapital)101. forlinlists:102. fork,vinl.items

8、():103. print%s:%s%(k,v),104. break105. break106. 107. if_name_=_main_:108. _lbsql_test_sqlite3() lbsqlite.zip(1 KB) 下载次数: 2本文转载链接:http:/ sqlite3db= rD:pyWorktest.db #pyWork目录下test.db数据库文件drp_tb_sql= drop table if exists staffcrt_tb_sql= create table if not exists staff(id integer primary key autoin

9、crement unique not null,name varchar(100),city varchar(100);#连接数据库con= sqlite3.connect(db)cur= con.cursor()#创建表staffcur.execute(drp_tb_sql)cur.execute(crt_tb_sql)#插入记录insert_sql= insert into staff (name,city) values (?,?) #?为占位符cur.execute(insert_sql,(Tom,New York)cur.execute(insert_sql,(Frank,Los Angeles)cur.execute(insert_sql,(Kate,Chicago)cur.execute(insert_sql,(Thomas,Houston)cur.execute(insert_sql,(Sam,Philadelphia)mit()#查询记录select_sql= select * from staffcur.execute(select_sql)#返回一个list,list中的对象类型为tuple(元组)date_set= cur.fetchall()for rowin da

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号