您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“怎么將Python程序連接到MariaDB”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么將Python程序連接到MariaDB”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
您可以使用流行的編程語言 Python 來管理存儲在 MariaDB 平臺中的數據,包括 MariaDB Server、MariaDB MaxScale 和 MariaDB SkySQL。
您將需要訪問 MariaDB 服務器。我們推薦以下兩種方法之一:
1. 在您自己的硬件上下載 MariaDB 服務器。有關文檔中的分步說明,請參閱 部署指南。
2. 使用 MariaDB SkySQL 部署 MariaDB 平臺,其中包括 MariaDB Enterprise Server。請參閱我們的文檔以在幾分鐘內啟動數據庫服務。
如果您想嘗試 Python 與 MariaDB 的集成,但沒有可使用的數據庫,則可以使用流行的員工示例數據庫。
MariaDB 通過 MariaDB Connector/Python 提供 Python 支持,可通過 Python Package Index 獲得。要安裝,請使用 PIP:
Shell:
$ pip3 install mariadb
1. 要使用 MariaDB Connector/Python 連接到 MariaDB 服務器,您必須先導入它,就像導入任何其他模塊一樣: import mariadb
2.接下來,使用connect()函數建立數據庫連接。該函數采用一系列命名參數來指定您的客戶端憑據,例如用戶名、主機、密碼。如果您在 SkySQL 上使用數據庫實例,此信息將在您的數據庫實例的服務詳細信息頁面中提供。
該連接為您提供了一個界面,用于配置您的應用程序與 MariaDB 服務器的連接。
3. 最后,調用cursor()連接上的方法來檢索游標。
游標為您提供了與服務器交互的界面,例如運行 SQL 查詢和管理事務。
Python:
# Module Imports
import mariadb
import sys
# Connect to MariaDB Platform
try: conn = mariadb.connect(
user="db_user",
password="db_user_passwd",
host="192.0.2.1",
port=3306,
database="employees"
) except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}")
sys.exit(1)
# Get Cursor
cur = conn.cursor()
有了初始代碼后,您就可以開始處理數據了。您應該做的第一件事是嘗試從數據庫中檢索信息。以下是針對員工數據庫的查詢代碼:
Python:
cur.execute(
"SELECT first_name,last_name FROM employees WHERE first_name=?",
(some_name,))
MariaDB 連接器/Python 使用準備好的語句,清理元組中的值并將其插入問號 (?) 的位置。在處理用戶提供的信息時,這比通過 f 字符串或格式說明符插入更安全。
查詢結果存儲在游標對象的列表中。要查看結果,您可以在光標上循環。
Python:
# Print Result-set
for (first_name, last_name) in cur:
print(f"First Name: {first_name}, Last Name: {last_name}")
每一行作為包含SELECT語句中列的元組從游標傳遞。
execute()對INSERT語句使用相同的方法,您可以向表中添加行。
Python:
cursor.execute(
"INSERT INTO employees (first_name,last_name) VALUES (?, ?)",
(first_name, last_name))
默認情況下,MariaDB Connector/Python 啟用自動提交。如果您想手動管理您的事務,僅在您準備好時提交,您可以通過將autocommit連接上的屬性設置為 False來禁用它。
Python:
# Disable Auto-Commit
conn.autocommit = False
完成此操作后,您可以使用commit()和rollback()方法提交和回滾事務。MariaDB Server 允許您在使用 InnoDB 存儲引擎時在同一個表上運行多個并發事務而無需鎖定它。
在插入行時,您可能希望在生成最后插入的行時找到它的主鍵,就像自動遞增的值一樣。您可以使用lastrowid()光標上的方法檢索它。
更新和刪除行與插入行類似。唯一的區別在于所使用的查詢。
對于您的任何 SQL 操作(查詢、更新、刪除或插入記錄),您都應該嘗試捕獲錯誤,以便您可以驗證您的操作是否按預期執行,并且您在出現任何問題時都知道。要捕獲錯誤,請使用 Error 類:
Python:
try:
cursor.execute("some MariaDB query"))
except mariadb.Error as e:
print(f"Error: {e}")
如果try上述代碼的子句中的查詢失敗,MariaDB Server 會返回一個 SQL 異常,該異常在except 中被捕獲并打印到 stdout。當您使用數據庫時,這種捕獲異常的編程最佳實踐尤其重要,因為您需要確保信息的完整性。
完成對數據庫的使用后,請確保關閉此連接,以避免將未使用的連接保持打開狀態,從而浪費資源。您可以使用以下close()方法關閉連接:
Python:
# Close Connection
conn.close()
如果您使用 SkySQL 進行試驗,您可能需要刪除您的數據庫服務以停止產生費用。
這就是將 Python 代碼連接到 MariaDB 數據庫是多么簡單和直接。以下是完整得腳本的代碼:
Python:
#!/usr/bin/python
import mariadb
conn = mariadb.connect(
user="db_user",
password="db_user_passwd",
host="localhost",
database="employees"
)
cur = conn.cursor()
#retrieving information
some_name = "Georgi"
cur.execute("SELECT first_name,last_name FROM employees WHERE first_name=?", (some_name,))
for first_name, last_name in cur:
print(f"First name: {first_name}, Last name: {last_name}")
#insert information
try:
cur.execute("INSERT INTO employees (first_name,last_name) VALUES (?, ?)", ("Maria","DB"))
except mariadb.Error as e:
print(f"Error: {e}")
conn.commit()
print(f"Last Inserted ID: {cur.lastrowid}")
conn.close()
讀到這里,這篇“怎么將Python程序連接到MariaDB”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。