嗨,小伙伴们,好久不见,我是咿哑呀。今天我们来学习怎样使用数据库存取数据。Python中有一个专门的数据库处理的模块,叫sqlite3,相比其他数据库模块,这个模块处理数据又快又好。下面我们分创建数据库类、运用数据库类两篇文章来介绍这个模块的使用,这篇文章主要是介绍如何创建数据库类的。这个数据库类是通用的,也就是对于字典、列表、集合、元组等数据都适用,只需要更改下一篇运用数据库类文章的一部分就行。
为了创建数据库类,我们还是要先用命令pip install sqlite3安装好sqlite3模块,然后,新建一个叫YYY的文件夹,在YYY文件夹中新建database.py文件,打开database.py文件,写下以下代码并保存:
import sqlite3
import os
#数据库类
class database:
def __init__(self,filename):
self.FILE_NAME=filename
def open_database(self):
conn=sqlite3.connect(self.FILE_NAME)
if os.path.exists(self.FILE_NAME) and os.path.isfile(self.FILE_NAME):
self.conn=conn
else:
self.conn=sqlite3.connect(':memory:')
self.cursor=self.conn.cursor()
def create_table(self,TableName,TableStruct):
sql = '''CREATE TABLE '''+TableName+' '+TableStruct
self.open_database()
self.cursor.execute(sql)
self.conn.commit()
self.close_database()
def query_havetable(self,TableName):
sql="select name from sqlite_master where type = 'table' order by name"
self.open_database()
self.cursor.execute(sql)
tt = self.cursor.fetchall()
self.close_database()
if tt:
if TableName in tt[0]:
return 1
else:
return 0
else:
return 0
def close_database(self):
try:
if self.cursor is not None:
self.cursor.close()
finally:
if self.conn is not None:
self.conn.close()
def save_data(self,TableName,TableStruct,data):
var='(?,'
for i in range(TableStruct.count(',')):
var+='?,'
var=var[:-1]+')'
sql = '''INSERT INTO '''+TableName+''' values '''+var
if data is not None:
self.open_database()
self.cursor.executemany(sql,data)
self.conn.commit()
self.close_database()
def query_data(self,sql):
self.open_database()
self.cursor.execute(sql)
r = self.cursor.fetchall()
self.close_database()
return
以上代码的意思就是:导入sqlite3、os两个模块,创建一个database数据库类,这个包括有__init__初始化、open_database打开数据库、create_table创建数据表、query_havetable查询数据表、close_database关闭数据库、save_data保存数据、query_data查询数据共7个函数。好了,下一篇文章就是如何使用这个数据库类存取字典数据啦!如果这篇文章对你有用,请点赞、转发、收藏、评论,如果喜欢我的文章,请搜索并关注“咿哑呀”,我将分享更多文章给大家。