大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说Sqlite—Python接口[通俗易懂],希望您对编程的造诣更进一步.
#!/usr/bin/env python # -*- coding:utf-8 -*- import sqlite3,os,time import traceback class Sqlite(): db_file = None # 数据库文件 connection = None # 数据库连接对象 def __init__(self): self.db_file = "/www/wwwroot/ding-server/db/test.db" # 获取数据库对象 def GetConn(self): try: if self.connection == None: self.connection = sqlite3.connect(self.db_file) self.connection.text_factory = str except Exception as ex: traceback.print_exc() return "error: " + str(ex) # 增加任务 def insert(self, sql): self.write_lock() self.GetConn() self.connection.text_factory = str try: result = self.connection.execute(sql) id = result.lastrowid self.connection.commit() self.rm_lock() return id except Exception as ex: return "error: " + str(ex) # 删除任务 def delete(self, sql): self.write_lock() self.GetConn() try: result = self.connection.execute(sql) self.connection.commit() self.rm_lock() return result.rowcount except Exception as ex: return "error: " + str(ex) # 修改任务状态(完成/未完成) def update(self, sql): self.GetConn() try: result = self.connection.execute(sql) self.connection.commit() return result.rowcount except Exception as ex: return "error: " + str(ex) # 查询任务 def select(self, sql): self.GetConn() result = self.connection.execute(sql) data = result.fetchall() tmp = list(map(list,data)) # 元组转成列表 data = tmp return data # 方式1:创建数据表 def create(self): self.GetConn() sql = """create table if not exists tb_user( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);""" try: self.connection.execute(sql) self.connection.commit() self.connection.close() except Exception as ex: traceback.print_exc() return "error: " + str(ex) # 方式2:创建数据表 def create_back(self): self.GetConn() try: fr = open("/www/wwwroot/ding-server/db/task.sql", "rb") result = self.connection.executescript(fr.read()) fr.close() self.connection.commit() return True except Exception as ex: traceback.print_exc() return False def writeFile(self,filename,s_body,mode="w+"): try: fp = open(filename, mode); fp.write(s_body) fp.close() return True except: try: fp = open(filename, mode,encoding="utf-8"); fp.write(s_body) fp.close() return True except: return False # 是否有锁 def is_lock(self): n = 0 while os.path.exists(self.__LOCK): n+=1 if n > 50: self.rm_lock() break time.sleep(0.01) # 写锁 def write_lock(self): self.is_lock() self.writeFile(self.__LOCK,"True") # 解锁 def rm_lock(self): if os.path.exists(self.__LOCK): os.remove(self.__LOCK) if __name__ == "__main__": obj = Sqlite() # obj.GetConn() # 获取数据库连接,没有的话,就创建数据库 obj.create()
代码100分
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10491.html