关于Python sqllite3数据库相关问题记录分享

Python sqllite3数据库相关问题分享


注意下面
如果有车载讨论需要的小伙伴,可以私信加我微信,拉你进群,和同行业大佬交流
注意上面

前言

最近在用sqllite3数据,虽然之前用过,再次使用仍旧出现了一些问题,在这里记录下


提示:以下是本篇文章正文内容,下面案例可供参考

一、关于sqllite3代码和问题

1.源码分享

代码如下(示例):

import sqlite3


class MyDB():
    def __init__(self,dblist):
        self.__conn = sqlite3.connect('config.db', check_same_thread=False)
        self.__cur = self.__conn.cursor()
        self.create(dblist)

    def createdb(self,sql1):
        self.__cur.execute(sql1)

    def create(self,dblist):
        sql1 = 'CREATE TABLE IF NOT EXISTS config (\n'
        for m in dblist:
            sql2 = '{} {} NULL,\n'.format(m.name,m.attrib)
            sql1 += sql2
        sql1=sql1.strip('\n').strip(',')
        end = ');'
        sql1 += end
        self.createdb(sql1)

    def add(self,datalist):
        tempdata = []
        add_sql = '''INSERT INTO config values ('''
        data_sql =('?,'*len(datalist)).strip(',')+')'
        for value in datalist:
            tempdata.append(value)
        add = add_sql+data_sql
        data =tuple(tempdata)
        self.__cur.execute(add,data)
        self.__conn.commit()

    def fetchone(self,datatype,fetdata):
        fetchone_sql = 'SELECT * FROM config WHERE {} = \'{}\' '.format(datatype,fetdata)
        self.__cur.execute(fetchone_sql)
        result = self.__cur.fetchone()
        return result

    def fetchall(self):
        fet_sql = 'SELECT * FROM config'
        self.__cur.execute(fet_sql)
        result = self.__cur.fetchall()
        return result

    def delete(self,datatype,data):
        delete_sql = "delete from config where {}=\'{}\';".format(datatype,data)
        self.__cur.execute(delete_sql)
        self.__conn.commit()


2.问题记录分享

1.'CREATE TABLE IF NOT EXISTS config',这句话的作用是当config这个表存在时则不创建
2.from config where {}=\'{}\',这里的\'{}\'你得先确定需要输入的是字符串还是其他类型

总结

时时记录问题,防止以后存在遗忘

写在结尾

我是一名车载集成测试开发工程师,希望能和志同道合的朋友一起相互学习进步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值