在我們所處的資訊時代,我們可以看到世界正在交換多少資料。我們基本上是在廣泛地創建、儲存和檢索資料!應該有一種方法來處理這一切——如果沒有任何管理,它就不可能到處傳播,對嗎?這裡是資料庫管理系統(DBMS)。
DBMS 是一個軟體系統,可讓您建立、儲存、修改、檢索和以其他方式處理資料庫中的資料。此類系統的大小也各不相同,從僅在個人電腦上運行的小型系統到在大型主機上運行的大型系統。
本教學的重點是 Python,而不是資料庫設計。是的,Python 非常能夠與資料庫交互,這就是我將在本教程中向您展示的內容。您將學習如何使用 Python 處理 SQLite 和 Redis 資料庫。
讓我們開始吧!
如上所述,Python 能夠與資料庫互動。但是,它怎麼能做到這一點呢? Python 使用所謂的 Python Database API 來與資料庫進行互動。此 API 允許我們對不同的資料庫管理系統 (DBMS) 進行程式設計。然而,對於不同的 DBMS,程式碼層級遵循的過程是相同的,如下所示:
SQLite 是一個開源、功能齊全、獨立(幾乎不需要外部程式庫的支援)、無伺服器(不需要伺服器來運行資料庫引擎,並且是本地儲存的資料庫)、零配置(無需安裝或設定)、基於SQL 的輕量級資料庫管理系統(可以在SQLite 表上執行SQL 查詢),並使用一個資料檔來儲存資料。
值得一提的是,SQLite 被 Google、Apple、Microsoft 等大公司使用,這使得它非常可靠。在本教程中,我們將使用 SQLite 與資料庫交互,更具體地說,我們將使用 Python 中的 sqlite3 模組。
如上所述,使用資料庫涉及五個個主要步驟。讓我們看看這些步驟的實際效果。
該步驟實作如下:
conn = sqlite3.connect('company.db')
#如 sqlite3
文件所述:
要使用該模組,您必須先建立一個表示資料庫的 Connection
物件。
在上面的程式碼中,請注意資料將儲存在檔案 company.db
中。
使用資料庫的下一步是建立遊標,如下所示:
curs = conn.cursor()
連接資料庫並建立遊標後,我們現在就可以處理(互動)資料了。換句話說,我們現在可以在資料庫 company.db
上執行 SQL 指令。
假設我們要在資料庫 company
中建立一個新表 employee
。在這種情況下,我們需要執行 SQL 命令。為此,我們將使用 sqlite3
模組的 execute()
方法。因此,Python 語句將如下所示:
curs.execute('建立表格員工(姓名,年齡)')
#此語句將執行一個SQL 指令,該指令將建立一個名為employee
的表,其中包含兩個欄位(欄位)name
和age
。
我們現在可以執行一個新的 SQL 命令來在表中插入數據,如下所示:
curs.execute("插入員工值('Ali', 28)")
您也可以一次插入多個值,如下所示:
值 = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]
#在這種情況下,我們將使用方法execute()
,而不是使用方法executemany()
來執行上述多個值。
curs.executemany('插入員工值(?,?)', value)
在此步驟中,我們希望套用(提交)我們在上一步中所做的變更。這很簡單,如下所示:
conn.commit()
執行操作並提交更改後,最後一步是關閉連線:
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
的檔案。下載此文件,因為我們將在下一步中使用它。
建立了資料庫和表格並新增了一些資料後,讓我們看看 company.db
(您在上一節下載的檔案)裡面有什麼。為此,我們將使用一個很好的工具:DB Browser for SQLite。繼續將該工具下載到您的電腦。打開程式後,您應該會看到如下所示的畫面:
#使用頂部的開啟資料庫按鈕開啟資料庫,在這種情況下,您應該獲得資料庫結構,如下所示:
#請注意,我們列出了表格 employee
,其中包含兩個欄位:name
和 age
。
要確認上面的程式碼有效且資料已新增至表中,請按一下瀏覽資料標籤。您應該會看到類似以下內容:
#可以看到,資料庫(company
)和表格(employee
)已經建立完成,並且資料已成功新增到表中。
遠端字典伺服器,簡稱為Redis,是一個強大的 NoSQL 資料庫,也能夠充當記憶體快取。 Redis 由 Salvatore Sanfilippo 開發,目前由 Redis Labs 維護。該軟體使用C程式語言編寫,並且是開源的(BSD許可證)。
Redis 最顯著的特點之一就是它的資料結構儲存機制。您可以使用 Python 中的相同資料類型(字串、集合、整數、列表、字典等)在 Redis 中儲存資料。 這使得 Redis 成為 Python 開發人員的熱門選擇。
#除了其資料結構儲存機制之外,Python 開發人員還因為 Redis 擁有大量 Python 用戶端而更喜歡 Redis 而不是其他 NoSQL 資料庫,其中最受歡迎的選擇可能是 redis-py。 Redis-py 提供了用於在 Redis 伺服器中儲存各種資料的內建命令。
現在我們對 Redis 有了基本的了解,讓我們學習如何在其中儲存資料。在繼續之前,請確保您的電腦上安裝了 Redis 伺服器。
首先,為您的 Python 腳本建立一個名為 redis-python 的新資料夾。接下來,使用命令終端機 cd 到該資料夾,然後執行以下命令來安裝 Redis 用戶端:
#pip install redis
然後,在 redis-python 中建立一個名為 app.py 的文件,並使用文字編輯器開啟該文件。下一步是建立用於將資料新增至資料庫的 Python 腳本。
#首先,在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()
首先,透過在命令終端機上執行以下命令來執行 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中文網其他相關文章!