最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3使用sqlite3構(gòu)建本地持久化緩存的過(guò)程

 更新時(shí)間:2023年11月07日 08:52:04   作者:Mike_Zhang  
日常python開(kāi)發(fā)中會(huì)遇到數(shù)據(jù)持久化的問(wèn)題,今天記錄下如何使用sqlite3進(jìn)行數(shù)據(jù)持久化,并提供示例代碼及數(shù)據(jù)查看工具,需要的朋友可以參考下

環(huán)境:Windows 10_x64

python版本:3.9.2

sqlite3版本:3.34.0

日常python開(kāi)發(fā)中會(huì)遇到數(shù)據(jù)持久化的問(wèn)題,今天記錄下如何使用sqlite3進(jìn)行數(shù)據(jù)持久化,并提供示例代碼及數(shù)據(jù)查看工具。

一、背景描述

python應(yīng)用程序在運(yùn)行過(guò)程中被kill掉(比如版本升級(jí)等情況),內(nèi)存中的運(yùn)行數(shù)據(jù)將會(huì)丟失,如果能夠準(zhǔn)實(shí)時(shí)將數(shù)據(jù)存儲(chǔ)在緩存中,程序下次啟動(dòng)時(shí)將繼續(xù)執(zhí)行被kill之前的動(dòng)作。

使用數(shù)據(jù)庫(kù)作為持久化是筆記理想的選擇,可現(xiàn)實(shí)情況可能需要python腳本進(jìn)行本地持久化,相較于pickle等方式,sqlite3的持久化方式可擴(kuò)展性比較強(qiáng),方便后續(xù)遷移到mysql等數(shù)據(jù)庫(kù)。

二、具體實(shí)現(xiàn)

1、基礎(chǔ)使用示例

查看版本信息

import sqlite3
print(sqlite3.version_info) #顯示sqlite3版本信息
print(sqlite3.sqlite_version) #顯示SQLite版本信息

數(shù)據(jù)庫(kù)創(chuàng)建或連接

conn = sqlite3.connect("test1.db")
cur = conn.cursor()

數(shù)據(jù)表創(chuàng)建

dbCreate = '''
CREATE TABLE user(
    user_id int,
    user_name text,
    password text
)
'''
cur.executescript(dbCreate)
conn.commit()

插入數(shù)據(jù)

conn.execute("INSERT INTO user (user_id,user_name,password) VALUES(1,'user1','123456')")
conn.commit()

查詢(xún)數(shù)據(jù)

cursor = conn.execute("SELECT * FROM user")
for row in cursor.fetchall():
    print(row)

完整示例代碼如下:

#! /usr/bin/env python3
#--*-- ebcoding:utf-8 --*--
import sqlite3
dbCreate = '''
CREATE TABLE user(
    user_id int,
    user_name text,
    password text
)
'''
# 創(chuàng)建或連接數(shù)據(jù)庫(kù)
conn = sqlite3.connect("test1.db")
cur = conn.cursor()
cur.executescript(dbCreate)
conn.commit()
conn.execute("INSERT INTO user (user_id,user_name,password) VALUES(1,'user1','123456')")
conn.execute("INSERT INTO user (user_id,user_name,password) VALUES(2,'user2','123457')")
conn.commit()
cursor = conn.execute("SELECT * FROM user")
for row in cursor.fetchall():
    print(row)
conn.close()

運(yùn)行效果:

生成的 test1.db 數(shù)據(jù)庫(kù)文件可以使用 sqlitestudio 進(jìn)行查看,軟件運(yùn)行效果如下:

下載地址:

https://sqlitestudio.pl/

如果下載過(guò)慢,可從如下文末提供的渠道獲取。

2、代碼封裝示例

實(shí)際使用過(guò)程中,需要進(jìn)行代碼封裝,以便后續(xù)使用,這里以通話記錄為例演示下封裝過(guò)程。

1)定義全局緩存 gDCdrData,用于在內(nèi)存中存放數(shù)據(jù);
2)定義全局隊(duì)列 gQCDR ,用于數(shù)據(jù)傳遞;
3)定義sqlite3持久化文件,并定義保留時(shí)長(zhǎng);
4)創(chuàng)建 ObjCdrItem 類(lèi),用于定義item數(shù)據(jù)結(jié)構(gòu);
5)定義sqlite3管理類(lèi) ObjCDRMgr,用于管理sqlite3數(shù)據(jù)庫(kù);
6)啟動(dòng) dataGenThrd 線程模擬數(shù)據(jù)創(chuàng)建;
7)啟動(dòng) updateThrd 線程用于數(shù)據(jù)更新;
8)啟動(dòng) cleanThrd 線程用于數(shù)據(jù)清理;

示例代碼如下:

完整代碼可從如下鏈接獲取:

http://xiazai.jb51.net/202311/yuanma/sqlitestudio_jb51.rar

運(yùn)行效果如下:

數(shù)據(jù)文件打開(kāi)效果如下:

三、資源下載

http://xiazai.jb51.net/202311/yuanma/sqlitestudio_jb51.rar

以上源碼免費(fèi)提供大家,感謝支持!

到此這篇關(guān)于python3使用sqlite3構(gòu)建本地持久化緩存的文章就介紹到這了,更多相關(guān)python3本地持久化緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python編程中類(lèi)與類(lèi)的關(guān)系詳解

    Python編程中類(lèi)與類(lèi)的關(guān)系詳解

    在本文里小編給大家整理了關(guān)于Python編程中類(lèi)與類(lèi)的關(guān)系以及相關(guān)代碼知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • 在python中使用[[v]*n]*n遇到的坑及解決

    在python中使用[[v]*n]*n遇到的坑及解決

    這篇文章主要介紹了在python中使用[[v]*n]*n遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • matplotlib交互式數(shù)據(jù)光標(biāo)實(shí)現(xiàn)(mplcursors)

    matplotlib交互式數(shù)據(jù)光標(biāo)實(shí)現(xiàn)(mplcursors)

    這篇文章主要介紹了matplotlib交互式數(shù)據(jù)光標(biāo)實(shí)現(xiàn)(mplcursors),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python mysql斷開(kāi)重連的實(shí)現(xiàn)方法

    python mysql斷開(kāi)重連的實(shí)現(xiàn)方法

    這篇文章主要介紹了python mysql斷開(kāi)重連的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python3?sys?模塊常用功能及實(shí)戰(zhàn)場(chǎng)景

    Python3?sys?模塊常用功能及實(shí)戰(zhàn)場(chǎng)景

    在Python中,sys模塊是與解釋器交互的橋梁,提供了一系列用于訪問(wèn) Python 解釋器本身和操作系統(tǒng)相關(guān)信息的函數(shù)與變量,本文將系統(tǒng)講解sys模塊的常用功能及實(shí)戰(zhàn)場(chǎng)景,幫助你高效利用其特性,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到

    Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到

    時(shí)隔三周沒(méi)有和大家見(jiàn)過(guò)面了,最近在研究python模擬登陸專(zhuān)題,話不多說(shuō),讓我們愉快地開(kāi)始實(shí)現(xiàn)模擬登陸實(shí)現(xiàn)網(wǎng)易云自動(dòng)簽到,需要的朋友可以參考下
    2021-06-06
  • pycharm最新免費(fèi)激活碼至2099年(21.3.18親測(cè)可用)

    pycharm最新免費(fèi)激活碼至2099年(21.3.18親測(cè)可用)

    這篇文章主要介紹了pycharm最新的激活碼及激活碼的使用方法,幫助大家更好的利用pycharm學(xué)習(xí)python,感興趣的朋友可以了解下。
    2021-03-03
  • Python 中創(chuàng)建 PostgreSQL 數(shù)據(jù)庫(kù)連接池

    Python 中創(chuàng)建 PostgreSQL 數(shù)據(jù)庫(kù)連接池

    這篇文章主要介紹了Python 中創(chuàng)建 PostgreSQL 數(shù)據(jù)庫(kù)連接池,Python 連接 PostgreSQL 是主要有兩個(gè)包, py-postgresql 和 psycopg2 , 而本文的實(shí)例將使用后者,感興趣的小伙伴可以參考一下
    2021-10-10
  • Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼

    Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼

    這篇文章主要介紹了Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼,需要的朋友可以參考下
    2016-08-08
  • Python 京東云無(wú)線寶消息推送功能

    Python 京東云無(wú)線寶消息推送功能

    這篇文章主要介紹了Python 京東云無(wú)線寶消息推送功能,發(fā)送釘釘消息獲取可用積分,詳細(xì)配置文件通過(guò)實(shí)例代碼給大家講解的很詳細(xì),代碼+注釋講解的很詳細(xì),需要的朋友可以參考下
    2021-05-05

最新評(píng)論

高陵县| 色达县| 宣城市| 青岛市| 台东县| 潢川县| 历史| 高雄县| 阳谷县| 德庆县| 安宁市| 怀柔区| 大城县| 墨江| 清水县| 鄯善县| 都昌县| 南川市| 边坝县| 仪陇县| 南阳市| 吉林省| 红河县| 蒲江县| 云霄县| 盐池县| 平度市| 中江县| 基隆市| 和林格尔县| 辽阳市| 资源县| 青河县| 滦平县| 亳州市| 汝城县| 开阳县| 格尔木市| 明水县| 岳池县| 大英县|