《python 的sqlite3连接模块用法》由会员分享,可在线阅读,更多相关《python 的sqlite3连接模块用法(14页珍藏版)》请在金锄头文库上搜索。
1、 python 在 2.5 版以后,就自带了 sqlite3 模块,直接 import 即可。模块可用后,就可以实现连接 sqlite 数据库的功能。sqlite3 数据库与 mysql 不同,它每一个库叫做一个文件,连接的时候,库名即文件名,库内的表则操作方法与 mysql 相同,或许支持的 sql 语句会有一些差异。我根据连接 mysql 的操作方法的包装,改写成了这个 sqlite 数据库连接模块。附件有这个源码。Python代码 1. #coding=gbk 2. import os,sys,string 3. import sqlite3 4. import traceback 5.
2、 6. class SQLObj(object): 7. def _init_(self, db = youmoney): 8. self.db_name = db 9. self.connected = 0 10. self.cur = None # 指针对象 11. self.conn = None # 连接对象 12. self._connect() 13. 14. def _connect(self): 15. try: 16. #print connect to , self.db_name 17. self.conn = sqlite3.connect(self.db_name)
3、18. self.cur = self.conn.cursor() 19. self.connected = 1 20. except: 21. traceback.print_exc() 22. self.connected = 0 23. 24. property 25. def is_connected(self): 26. return self.connected != 0 27. 28. def _check_alive(self): 29. if not self.is_connected: 30. self._connect() 31. if not self.is_conne
4、cted: 32. raise Cant connect to sqlite3 33. 34. #直接提取方法 35. def query(self, sql, warning=1): 36. self._check_alive() 37. try: 38. cur = self.conn.cursor() 39. cur.execute(sql) 40. res = cur.fetchall() 41. cur.close() 42. except: 43. if warning: 44. traceback.print_exc() 45. return None 46. return re
5、s 47. 48. 49. #特殊的提取方法,形成字典返回 50. def dquery(self, sql, warning=1): 51. self._check_alive() 52. try: 53. cur = self.conn.cursor() 54. cur.execute(sql) 55. 56. des = cur.description #获取字段描述 57. res = cur.fetchall() #获取字段内容 58. ret = 59. if des: 60. names = x0 for x in des #从 des中提取每个元素(列表)的第一个元素(字符串)
6、 61. for line in res: 62. ret.append(dict(zip(names, line) #dict是形成字典的工厂函数,zip 用于多个列表循环(name, line是两个列表) 63. else: 64. ret = res 65. cur.close() 66. except: 67. if warning: 68. traceback.print_exc() 69. return None 70. return ret 71. 72. def execute(self, sql, warning=1): 73. self._check_alive() 74.
7、 try: 75. cur = self.conn.cursor() 76. rows = cur.execute(sql) 77. mit() 78. cur.close() 79. return rows 80. except: 81. if warning: 82. traceback.print_exc() 83. return -1 84. 85. def close(self): 86. if self.connected = 0: 87. return 88. try: 89. self.cur.close() 90. self.conn.close() 91. self.con
8、nected = 0 92. except: 93. pass 94. 95. def _del_(self): 96. self.close() 97. 98. def _lbsql_test_sqlite3(): 99. db = SQLObj(db = youmoney.db) 100. lists = db.dquery(select * from capital) 101. for l in lists: 102. for k, v in l.items(): 103. print %s: %s %(k, v), 104. break 105. break 106. 107. if
9、_name_ = _main_: 108. _lbsql_test_sqlite3() lbsqlite.zip (1 KB) 下载次数: 2本文转载链接:http:/ 实现连接 SQLite 数据 库的方法这篇文章主要介绍了 Python3 实现连接 SQLite 数据库的方法,在 Python 数据库编程中有着广泛的应用,需要的朋友可以参考下本文实例讲述了 Python3 实现连接 SQLite 数据库的方法,对于 Python 的学习有不错的参考借鉴价值。分享给大家供大家参考之用。具体方法如下:实例代码如下:?123456789101112131415161718import sqlit
10、e3db = 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 autoincrement unique not null,name varchar(100),city varchar(100);#连接数据库con = sqlite3.connect(db)1920212223242526272829303132333435363738394041
11、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.
12、execute(insert_sql,(Sam,Philadelphia)mit()#查询记录select_sql = select * from staffcur.execute(select_sql)#返回一个 list,list 中的对象类型为 tuple(元组)date_set = cur.fetchall()for row in date_set:print(row)cur.close()con.close()希望本文实例对大家的 Python 学习有所帮助。本文转载连接:http:/ SQLite3 数据库操作类分享这篇文章主要介绍了 Python SQLite3 数据库操作类分享,需要的朋友可以参考下接触 Python 时间也不是很长的,最近有个项目需要分析数据,于是选用 Python 为编程语言,除了语言特性外主要还是看重 Python 对于 SQLite3 数据库良好的支持能力了,因为需要灵活处理大量的中间数据。刚开始一些模块我还乐此不疲的写 SQL 语句,后来渐渐厌倦了,回想到以前捣鼓 C#的时候利用反射初步构建了个 SQL 查询构造器,直到发现 linq,于是放弃了这个计划,当