- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
python 的sqlite3连接模块用法
?
python在2.5版以后,就自带了sqlite3模块,直接import即可。
?
模块可用后,就可以实现连接sqlite数据库的功能。sqlite3数据库与mysql不同,它每一个库叫做一个文件,连接的时候,库名即文件名,库内的表则操作方法与mysql相同,或许支持的sql语句会有一些差异。
?
我根据连接mysql的操作方法的包装,改写成了这个sqlite数据库连接模块。附件有这个源码。
?
?
Python代码??
#coding=gbk??
import?os,sys,string??
import?sqlite3??
import?traceback??
??
class?SQLObj(object):??
????def?__init__(self,?db?=?youmoney):??
????????self.db_name?=?db??
????????self.connected?=?0??
????????self.cur??=?None?#?指针对象??
????????self.conn?=?None?#?连接对象??
????????self._connect()??
??
????def?_connect(self):??
????????try:??
????????????#print?connect?to?,?self.db_name??
????????????self.conn?=?sqlite3.connect(self.db_name)??
????????????self.cur?=?self.conn.cursor()??
????????????self.connected?=?1??
????????except:??
????????????traceback.print_exc()??
????????????self.connected?=?0??
?
????@property??
????def?is_connected(self):??
????????return?self.connected?!=?0??
??
????def?_check_alive(self):??
????????if?not?self.is_connected:??
????????????self._connect()??
????????if?not?self.is_connected:??
????????????raise?Cant?connect?to?sqlite3??
??
????#直接提取方法??
????def?query(self,?sql,?warning=1):??
????????self._check_alive()??
????????try:??
????????????cur?=?self.conn.cursor()??
????????????cur.execute(sql)??
????????????res?=?cur.fetchall()??
????????????cur.close()??
????????except:??
????????????if?warning:??
????????????????traceback.print_exc()??
????????????return?None??
????????return?res??
??
??
????#特殊的提取方法,形成字典返回??
????def?dquery(self,?sql,?warning=1):??
????????self._check_alive()??
????????try:??
????????????cur?=?self.conn.cursor()??
????????????cur.execute(sql)??
??????????????
????????????des?=?cur.description?#获取字段描述??
????????????res?=?cur.fetchall()??#获取字段内容??
????????????ret?=?[]??
????????????if?des:??
????????????????names?=?[x[0]?for?x?in?des]?#从des中提取每个元素(列表)的第一个元素(字符串)??
????????????????for?line?in?res:??
????????????????????ret.append(dict(zip(names,?line)))?#dict是形成字典的工厂函数,zip用于多个列表循环(name,?line是两个列表)??
????????????e
您可能关注的文档
最近下载
- 期末默写、文言基础复习 统编版高中语文必修上册.docx VIP
- 对水果产业发展的调研报告.pdf
- 海水提取氯化钾项目节能评估报告.docx VIP
- 【一诊】绵阳市高三2022级(2025届)第一次诊断性考试数学试卷(含答案逐题解析).docx
- 2023-2024学年天津市河北区八年级第一学期期中数学试卷及参考答案完整版.pdf VIP
- 海水提取氯化钾项目节能分析报告.docx VIP
- 地基承载力标准值、特征值、允许值辨析.pdf
- 山东省烟台市2023至2024学年高二上学期期中考试化学试题附参考答案(解析).docx
- 利用PDCA降低乳腺癌改良根治术后患肢功能障碍发生率【24页】.pptx
- 高中英语课件:The Face-down Generation.pptx
文档评论(0)