python sqlite3 类
import sys
import os
import sqlite3 ##sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '..'))
##sys.path.append("..") class ConnectSqlite: def __init__(self, dbName="sqlite3Test.db"):
"""
初始化连接--使用完记得关闭连接
:param dbName: 连接库名字,注意,以'.db'结尾
"""
self._conn = sqlite3.connect(dbName)
self._cur = self._conn.cursor()
self._time_now = "[" + sqlite3.datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') + "]" def close_con(self):
"""
关闭连接对象--主动调用
:return:
"""
self._cur.close()
self._conn.close() def create_tabel(self, sql):
"""
创建表初始化
:param sql: 建表语句
:return: True is ok
"""
try:
self._cur.execute(sql)
self._conn.commit()
return True
except Exception as e:
print(self._time_now, "[CREATE TABLE ERROR]", e)
return False def drop_table(self, table_name):
"""
删除表
:param table_name: 表名
:return:
"""
try:
self._cur.execute('DROP TABLE {0}'.format(table_name))
self._conn.commit()
return True
except Exception as e:
print(self._time_now, "[DROP TABLE ERROR]", e)
return False def delete_table(self, sql):
"""
删除表记录
:param sql:
:return: True or False
"""
try:
if 'DELETE' in sql.upper():
self._cur.execute(sql)
self._conn.commit()
return True
else:
print(self._time_now, "[EXECUTE SQL IS NOT DELETE]")
return False
except Exception as e:
print(self._time_now, "[DELETE TABLE ERROR]", e)
return False def fetchall_table(self, sql, limit_flag=True):
"""
查询所有数据
:param sql:
:param limit_flag: 查询条数选择,False 查询一条,True 全部查询
:return:
"""
try:
self._cur.execute(sql)
war_msg = self._time_now + ' The [{}] is empty or equal None!'.format(sql)
if limit_flag is True:
r = self._cur.fetchall()
return r if len(r) > 0 else war_msg
elif limit_flag is False:
r = self._cur.fetchone()
return r if len(r) > 0 else war_msg
except Exception as e:
print(self._time_now, "[SELECT TABLE ERROR]", e) def insert_update_table(self, sql):
"""
插入/更新表记录
:param sql:
:return:
"""
try:
self._cur.execute(sql)
self._conn.commit()
return True
except Exception as e:
print(self._time_now, "[INSERT/UPDATE TABLE ERROR]", e)
return False def insert_table_many(self, sql, value):
"""
插入多条记录
:param sql:
:param value: list:[(),()]
:return:
"""
try:
self._cur.executemany(sql, value)
self._conn.commit()
return True
except Exception as e:
print(self._time_now, "[INSERT MANY TABLE ERROR]", e)
return False class conTest:
"""测试类""" def __init__(self,file):
self.con =sqlite3.connect(file)
self.cur=self.con.cursor() def create_table_test(self,bm):
sql = '''CREATE TABLE `mytest` (
`id` DATETIME DEFAULT NULL,
`user` VARCHAR(12) DEFAULT NULL,
`name` VARCHAR(12) DEFAULT NULL,
`number` VARCHAR(12) DEFAULT NULL
)'''
sql1 = f'PRAGMA table_info ({bm})'
print(sql1)
self.cur.execute(sql1)
self.con.commit()
value2 = self.cur.fetchall()
if len(value2)==0:
try:
print(self.cur.execute(sql))
self.con.commit()
except:
print("建立表出错")
else:
print("表已经存在") def drop_table_test(self):
sql1="delete from mytest"
self.cur.execute((sql1))
self.con.commit()
#print(self.con.drop_table("mytest")) def fetchall_table_test(self):
sql = "SELECT * from mytest WHERE user='1003';"
sql_all = "SELECT * from mytest;"
print("全部记录", self.cur.execute(sql_all))
print("全部记录", self.cur.fetchall())
print("单条记录", self.cur.execute(sql))
print("条件查询", self.cur.execute(sql)) def delete_table_test(self):
sql = "DELETE FROM mytest WHERE user='1003';"
self.con.delete_table(sql) def update_table_test(self):
sql_update = "UPDATE mytest SET id={0},user={1},name={2},number={3} WHERE number={4}".format(1, 1002, "'王五'",1002,1002)
self.cur.execute(sql_update)
self.con.commit() #print(self.con.insert_update_table(sql_update)) def insert_table_test_one(self):
sql = """INSERT INTO mytest VALUES (3, 1003, "王五", 1003);"""
self.cur.execute((sql))
self.con.commit() def insert_table_test_many(self):
sql = """INSERT INTO mytest VALUES (?,?,?,?) """
value = [(2, 1004, "赵六", 1004), (4, 1005, "吴七", 1005)]
for i in value:
self.cur.execute(sql,i)
self.con.commit()
## self.con.insert_table_many(sql, value)
## self.cur def close_con(self):
self.con.close() if __name__ == '__main__':
file1="sqlite3Test.db"
bm="mytest"
contest = conTest(file1)
contest.create_table_test(bm)
contest.insert_table_test_many()
contest.fetchall_table_test()
contest.insert_table_test_one()
contest.fetchall_table_test()
contest.update_table_test()
contest.drop_table_test()
contest.close_con()
python sqlite3 类的更多相关文章
- python sqlite3 数据库操作
python sqlite3 数据库操作 SQLite3是python的内置模块,是一款非常小巧的嵌入式开源数据库软件. 1. 导入Python SQLite数据库模块 import sqlite3 ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 【python】类中的self
在python的类中,经常会写self,代表对象自己.如下例: #coding=utf-8 class Foo: def __init__(self, name): self.name = name ...
- python基础——类和实例
python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...
- python(6)-类
面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类" 和 "对 ...
- 从C#到Python —— 4 类及面向对象
http://www.cnblogs.com/yanxy/archive/2010/04/04/c2p_4.html 如果你熟悉C#,那么对类(Class)和面向对象(Object Oriented) ...
- python sqlite3使用
python sqlite3文档地址:http://docs.python.org/2/library/sqlite3.html The sqlite3 module was written by G ...
- Python type类具体的三大分类:metaclasses,classes,instance
Python type类视角中的对象体系需要我们不断的学习,其中我们使用的时候需要注意.下面我们就看看如何才能更好的运用Python type类.下面的文章希望大家有所收获. 在单纯的Python t ...
- python元类分析
刚開始接触到Python新式类中的元类的概念的时候非常是纠结了下..不知道这是个啥东西... 用下面几个定义来说明吧: (1)Python中,类也是对象..仅仅只是这样的对象比較的特殊,他用于创建别的 ...
随机推荐
- 将TVM集成到PyTorch
将TVM集成到PyTorch 随着TVM不断展示出对深度学习执行效率的改进,很明显PyTorch将从直接利用编译器堆栈中受益.PyTorch的主要宗旨是提供无缝且强大的集成,而这不会妨碍用户.PyTo ...
- Jittor框架API
Jittor框架API 这里是Jittor主模块的API文档,可以通过import jittor来获取该模块. classjittor.ExitHooks exc_handler(exc_type, ...
- 深度学习框架集成平台C++ Guide指南
深度学习框架集成平台C++ Guide指南 这个指南详细地介绍了神经网络C++的API,并介绍了许多不同的方法来处理模型. 提示 所有框架运行时接口都是相同的,因此本指南适用于所有受支持框架(包括Te ...
- 什么是视觉Visual SLAM
什么是视觉Visual SLAM What Is Visual SLAM? What are the origins of visual SLAM? and what are some other a ...
- python小知识,列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表. 1.生成指定范围的数值列表,语法格式如下: list=[Expression for var in range if co ...
- leetcode:在 D 天内送达包裹的能力
链接:https://leetcode-cn.com/problems/capacity-to-ship-packages-within-d-days/ 我是按照这个思路来做的. 如果随便给一个船的运 ...
- 七、SSL加密网站(待解决)
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore //创建私钥和证书文件提示输入密 ...
- (1)http基础
HTTP服务基础 • 基于 B/S (Browser/Server)架构的网页服务– 服务端提供网页– 浏览器下载并显示网页 • Hyper Text Transfer Protocol,超文本传输协 ...
- k8s-nginx二进制报Illegal instruction (core dumped)
1.环境 系统:CentOS 7.3 内核:x86 环境:虚拟机 2.问题 收到一个现场问题,k8s环境中nginx的pod都启动异常. #kubectl get pod |grep nginx ng ...
- MAT工具定位分析Java堆内存泄漏问题方法
一.MAT概述与安装 MAT,全称Memory Analysis Tools,是一款分析Java堆内存的工具,可以快速定位到堆内泄漏问题.该工具提供了两种使用方式,一种是插件版,可以安装到Eclips ...