Python中的資料庫處理:SQLite和Redis

王林
發布: 2023-09-04 19:37:12
原創
723 人瀏覽過

在我們所處的資訊時代,我們可以看到世界正在交換多少資料。我們基本上是在廣泛地創建、儲存和檢索資料!應該有一種方法來處理這一切——如果沒有任何管理,它就不可能到處傳播,對嗎?這裡是資料庫管理系統(DBMS)。

DBMS 是一個軟體系統,可讓您建立、儲存、修改、檢索和以其他方式處理資料庫中的資料。此類系統的大小也各不相同,從僅在個人電腦上運行的小型系統到在大型主機上運行的大型系統。

本教學的重點是 Python,而不是資料庫設計。是的,Python 非常能夠與資料庫交互,這就是我將在本教程中向您展示的內容。您將學習如何使用 Python 處理 SQLite 和 Redis 資料庫。

讓我們開始吧!

Python 資料庫 API

如上所述,Python 能夠與資料庫互動。但是,它怎麼能做到這一點呢? Python 使用所謂的 Python Database API 來與資料庫進行互動。此 API 允許我們對不同的資料庫管理系統 (DBMS) 進行程式設計。然而,對於不同的 DBMS,程式碼層級遵循的過程是相同的,如下所示:

  1. 與您選擇的資料庫建立連線
  2. 建立一個遊標來與資料通訊。
  3. 使用 SQL 操作資料(互動)。
  4. 告訴連接將SQL 操作應用於資料並使它們永久化(提交),或告訴它中止這些操作(回滾),從而返回將資料恢復到交互發生之前的狀態。
  5. 關閉與資料庫的連線。

SQLite

SQLite 是一個開源、功能齊全、獨立(幾乎不需要外部程式庫的支援)、無伺服器(不需要伺服器來運行資料庫引擎,並且是本地儲存的資料庫)、零配置(無需安裝或設定)、基於SQL 的輕量級資料庫管理系統(可以在SQLite 表上執行SQL 查詢),並使用一個資料檔來儲存資料。

值得一提的是,SQLite 被 Google、Apple、Microsoft 等大公司使用,這使得它非常可靠。在本教程中,我們將使用 SQLite 與資料庫交互,更具體地說,我們將使用 Python 中的 sqlite3 模組。

Python 和 SQLite

如上所述,使用資料庫涉及五個個主要步驟。讓我們看看這些步驟的實際效果。

1.建立與您選擇的資料庫的連線

該步驟實作如下:

conn = sqlite3.connect('company.db')

#如 sqlite3 文件所述:

要使用該模組,您必須先建立一個表示資料庫的 Connection 物件。

在上面的程式碼中,請注意資料將儲存在檔案 company.db 中。

2.建立遊標來與資料通訊

使用資料庫的下一步是建立遊標,如下所示:

curs = conn.cursor()

#3.使用 SQL 運算資料

連接資料庫並建立遊標後,我們現在就可以處理(互動)資料了。換句話說,我們現在可以在資料庫 company.db 上執行 SQL 指令。

假設我們要在資料庫 company 中建立一個新表 employee。在這種情況下,我們需要執行 SQL 命令。為此,我們將使用 sqlite3 模組的 execute() 方法。因此,Python 語句將如下所示:

curs.execute('建立表格員工(姓名,年齡)')

#此語句將執行一個SQL 指令,該指令將建立一個名為employee 的表,其中包含兩個欄位(欄位)nameage

我們現在可以執行一個新的 SQL 命令來在表中插入數據,如下所示:

curs.execute("插入員工值('Ali', 28)")

您也可以一次插入多個值,如下所示:

值 = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]

#在這種情況下,我們將使用方法execute(),而不是使用方法executemany()來執行上述多個值。

curs.executemany('插入員工值(?,?)', value)

4.提交更改

在此步驟中,我們希望套用(提交)我們在上一步中所做的變更。這很簡單,如下所示:

conn.commit()

5.關閉與資料庫的連線

執行操作並提交更改後,最後一步是關閉連線:

conn.close()

讓我們將所有步驟放在一個腳本中。程式將如下所示(請注意,我們必須先導入 sqlite3 模組):

import sqlite3
conn = sqlite3.connect('company.db')
curs = conn.cursor()
curs.execute('create table employee (name, age)')
curs.execute("insert into employee values ('Ali', 28)")
values = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]
curs.executemany('insert into employee values(?,?)', values)
conn.commit()
conn.close()
登入後複製

如果執行該腳本,您應該在目前目錄中取得一個名為 company.db 的檔案。下載此文件,因為我們將在下一步中使用它。

6.讓我們瀏覽一下資料庫

建立了資料庫和表格並新增了一些資料後,讓我們看看 company.db (您在上一節下載的檔案)裡面有什麼。為此,我們將使用一個很好的工具:DB Browser for SQLite。繼續將該工具下載到您的電腦。打開程式後,您應該會看到如下所示的畫面:

Python中的資料庫處理:SQLite和Redis

#使用頂部的開啟資料庫按鈕開啟資料庫,在這種情況下,您應該獲得資料庫結構,如下所示:

Python中的資料庫處理:SQLite和Redis

#請注意,我們列出了表格 employee,其中包含兩個欄位:nameage

要確認上面的程式碼有效且資料已新增至表中,請按一下瀏覽資料標籤。您應該會看到類似以下內容:

Python中的資料庫處理:SQLite和Redis

#可以看到,資料庫(company)和表格(employee)已經建立完成,並且資料已成功新增到表中。

Redis

遠端字典伺服器,簡稱為Redis,是一個強大的 NoSQL 資料庫,也能夠充當記憶體快取。 Redis 由 Salvatore Sanfilippo 開發,目前由 Redis Labs 維護。該軟體使用C程式語言編寫,並且是開源的(BSD許可證)。

Redis 最顯著的特點之一就是它的資料結構儲存機制。您可以使用 Python 中的相同資料類型(字串、集合、整數、列表、字典等)在 Redis 中儲存資料。 這使得 Redis 成為 Python 開發人員的熱門選擇。

Redis 和 Python

#除了其資料結構儲存機制之外,Python 開發人員還因為 Redis 擁有大量 Python 用戶端而更喜歡 Redis 而不是其他 NoSQL 資料庫,其中最受歡迎的選擇可能是 redis-py。 Redis-py 提供了用於在 Redis 伺服器中儲存各種資料的內建命令。

現在我們對 Redis 有了基本的了解,讓我們學習如何在其中儲存資料。在繼續之前,請確保您的電腦上安裝了 Redis 伺服器。

1.安裝Redis.py客戶端

首先,為您的 Python 腳本建立一個名為 redis-python 的新資料夾。接下來,使用命令終端機 cd 到該資料夾,然後執行以下命令來安裝 Redis 用戶端:

#
pip install redis
登入後複製

然後,在 redis-python 中建立一個名為 app.py 的文件,並使用文字編輯器開啟該文件。下一步是建立用於將資料新增至資料庫的 Python 腳本。

2.將Redis客戶端連接到Redis伺服器

#首先,在app.py中,匯入redis並設定Redis伺服器主機和連接埠位址的變數:

import redis
redis_host = 'localhost'
redis_port = 6379
登入後複製

接下來,定義要新增到資料庫的資料。在本例中,我們將建立一個簡單的 Python 字典:

user = {
    'ID': 1,
    'name': 'Kingsley Ubah',
    'email': 'ubahthebuilder@gmail.com',
    'role': 'Tech Writing',
}
登入後複製

接下來,使用 try... except 定義 add_to_db 函式。在 try 區塊中,我們連接到本機 Redis 伺服器並將上述字典儲存在資料庫中,然後在控制台上輸出值。如果程式碼失敗,我們會在 except 區塊中列印錯誤物件。最後一部分將運行該函數:

def add_to_db():
    try:
        r = redis.StrictRedis(host = redis_host, port = redis_port, decode_responses=True)
        r.hmset("newUserOne", user)
        msg = r.hgetall("newUserOne")
        print(msg)
    except Exception as e:
        print(f"Something went wrong {e}")
 
# Runs the function:
if __name__ == "__main__":
    add_to_db()
登入後複製

3.啟動伺服器並執行程式碼

首先,透過在命令終端機上執行以下命令來執行 Redis 伺服器:

redis-cli
登入後複製

一旦伺服器處於活動狀態,您就可以使用下列命令執行 Python 腳本:

python app.py
登入後複製

如果一切顺利,包含用户配置文件的字典将使用 newUserOne 键添加到 Redis。此外,您应该在终端控制台上看到以下输出:

{
  'ID': '1', 
  'name': 'Kingsley Ubah', 
  'email': 'ubahthebuilder@gmail.com', 
  'role': 'Tech Writing', 
}
登入後複製

这就是 Redis 的全部内容!

结论

本教程仅触及使用 Python 处理数据库的皮毛。您可以从 sqlite3 模块了解更多方法,您可以在其中执行不同的数据库操作,例如更新和查询数据库。

要了解有关 redis-py 的更多信息,请立即阅读其完整文档。玩得开心!

以上是Python中的資料庫處理:SQLite和Redis的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板