Sqlite—Python接口[通俗易懂]

Sqlite—Python接口[通俗易懂]#!/usr/bin/env python # -*- coding:utf-8 -*- import sqlite3,os,time import traceback class Sqlite():

#!/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://www.runoob.com/sqlite/sqlite-python.html

参考:https://www.jianshu.com/p/5ff30df3ba6b

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10491.html

(0)
上一篇 2022-12-26
下一篇 2022-12-26

相关推荐

  • 查看/设置 mysql时区

    查看/设置 mysql时区 # 查看时区 show variables like ‘%time_zone%’; # 设置全局 set global time_zone=’+8:00′; # 设置当前会话 set tim…

    2023-03-28
    158
  • Python string.split函数:快速分离字符串

    Python string.split函数:快速分离字符串在Python中,string.split()函数是一个十分实用的函数,它可以帮助我们将一个字符串快速分离成多个部分。这个函数可以应用在很多场合,比如说,格式化文本,数据处理等等。下面,我们将从多个方面,来详细阐述Python中的string.split()函数。

    2024-03-21
    79
  • Python计算零的平方根

    Python计算零的平方根在数学中,如果一个数乘以自己等于零,那么这个数就被称为零的平方根。在实际应用中,零的平方根比较常见的出现在方程的根中,求方程的根就要涉及到求解零的平方根。

    2024-02-10
    99
  • 存储引擎简介_java存储引擎

    存储引擎简介_java存储引擎一.存储引擎简介 1、文件系统: 1.1 操作系统组织和存取数据的一种机制。 1.2 文件系统是一种软件。 2、文件系统类型:ext2 3 4 ,xfs 数据(centos6 ext 4 centos

    2022-12-18
    145
  • Python中更新字典的技巧

    Python中更新字典的技巧字典是Python中非常常用的一种数据类型,它是一种映射类型,用于存储键值对。在使用字典的过程中,经常会涉及到更新字典中的元素,本文将从多个方面对Python中更新字典的技巧进行详细的阐述。

    2024-01-30
    116
  • mysql高可用安装包_安装MySQL数据库

    mysql高可用安装包_安装MySQL数据库() MySQL HA部署 环境准备 | 地址 |说明 | |–|–| |10.5.12.92 | pro-mysql-ha01,主节点 1 | |10.5.12.93 | pro-mysql-h

    2023-05-27
    129
  • Python字符串编码

    Python字符串编码字符串是文本数据,而计算机只能处理二进制数据。在计算机中,文本字符串需要通过编码方式转换为二进制数据,以便于存储和传输。所以,字符串编码是将Unicode字符转换为二进制数据的过程。Python中的字符串编码是将字符串转换为字节序列的过程,以便它们可以在网络上传输或以二进制文件的形式存储。

    2024-02-17
    99
  • JVM优化之 -Xss「建议收藏」

    JVM优化之 -Xss「建议收藏」转自: http://www.java265.com/JavaCourse/202204/2983.html 下文笔者讲述JVM参数中常见的"-Xss -Xms -Xmx -Xmn&quot

    2023-05-26
    177

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注