您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹Python數據庫API是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
雖然 Python 需要為操作不同的數據庫使用不同的模塊,但不同的數據庫模塊并非沒有規律可循,因為它們基本都遵守 Python 制訂的 DB API 協議,目前該協議的最新版本是 2.0,因此這些數據庫模塊有很多操作其實都是相同的。下面先介紹不同數據庫模塊之間的通用內容。
全局變量
Python 推薦支持 DB API 2.0 的數據庫模塊都應該提供如下 3 個全局變量:
apilevel:該全局變量顯示數據庫模塊的 API 版本號。對于支持 DB API 2.0 版本的數據庫模塊來說,該變量值通常就是 2.0。如果這個變量不存在,則可能該數據庫模塊暫時不支持 DB API 2.0。讀者應該考慮選擇使用支持該數據庫的其他數據庫模塊。
threadsafety:該全局變量指定數據庫模塊的線程安全等級,該等級值為 0~3 ,其中 3 代表該模塊完全是線程安全的;1 表示該模塊具有部分線程安全性,線程可以共享該模塊,但不能共享連接;0 則表示線程完全不能共享該模塊。
paramstyle:該全局變量指定當 SQL 語句需要參數時,可以使用哪種風格的參數。該變量可能返回如下變量值:
format:表示在 SQL 語句中使用 Python 標準的格式化字符串代表參數。例如,在程序中需要參數的地方使用 %s,接下來程序即可為這些參數指定參數值。
pyformat:表示在 SQL 語句中使用擴展的格式代碼代表參數。比如使用 %(name),這樣即可使用包含 key 為 name 的字典為該參數指定參數值。
qmark:表示在 SQL 語句中使用問號(?)代表參數。在 SQL 語句中有幾個參數,全部用問號代替。
numeric:表示在 SQL 語句中使用數字占位符(:N)代表參數。例如:1 代表一個參數,:2 也表示一個參數,這些數字相當于參數名,因此它們不一定需要連續。
named:表示在 SQL 語句中使用命名占位符(:name)代表參數。例如 :name 代表一個參數,:age 也表示一個參數。
通過查閱這些全局變量,即可大致了解該數據庫 API 模塊的對外的編程風格,至于該模塊內部的實現細節,完全由該模塊實現者負責提供,通常不需要開發者關心。
數據庫 API 的核心類
遵守 DB API 2.0 協議的數據庫模塊通常會提供一個 connect() 函數,該函數用于連接數據庫,并返回數據庫連接對象。
數據庫連接對象通常會具有如下方法和屬性:
cursor(factory=Cursor):打開游標。
commit():提交事務。
rollback():回滾事務。
close():關閉數據庫連接。
isolation_level:返回或設置數據庫連接中事務的隔離級別。
in_transaction:判斷當前是否處于事務中。
上面第一個方法可以返回一個游標對象,游標對象是 Python DB API 的核心對象,該對象主要用于執行各種 SQL 語句,包括 DDL、DML、select 查詢語句等。使用游標執行不同的 SQL 語句返回不同的數據。
游標對象通常會具有如下方法和屬性:
execute(sql[, parameters]):執行 SQL 語句。parameters 參數用于為 SQL 語句中的參數指定值。
executemany(sql, seq_of_parameters):重復執行 SQL 語句。可以通過 seq_of_parameters 序列為 SQL 語句中的參數指定值,該序列有多少個元素,SQL 語句被執行多少次。
executescript(sql_script):這不是 DB API 2.0 的標準方法。該方法可以直接執行包含多條 SQL 語句的 SQL 腳本。
fetchone():獲取查詢結果集的下一行。如果沒有下一行,則返回 None。
fetchmany(size=cursor.arraysize):返回查詢結果集的下 N 行組成的列表。如果沒有更多的數據行,則返回空列表。
fetchall():返回查詢結果集的全部行組成的列表。
close():關閉游標。
rowcount:該只讀屬性返回受 SQL 語句影響的行數。對于 executemany() 方法,該方法所修改的記錄條數也可通過該屬性獲取。
lastrowid:該只讀屬性可獲取最后修改行的 rowid。
arraysize:用于設置或獲取 fetchmany() 默認獲取的記錄條數,該屬性默認為 1。有些數據庫模塊沒有該屬性。
description:該只讀屬性可獲取最后一次查詢返回的所有列的信息。
connection:該只讀屬性返回創建游標的數據庫連接對象。有些數據庫模塊沒有該屬性。
總結來看,Python 的 DB API 2.0 由一個 connect() 開始,一共涉及數據庫連接和游標兩個核心 API。它們的分工如下:
數據庫連接:用于獲取游標、控制事務。
游標:執行各種 SQL 語句。
掌握了上面這些 API 之后,接下來可以大致歸納出 Python DB API 2.0 的編程步驟。
操作數據庫的基本流程
使用 Python DB API 2.0 操作數據庫的基本流程如下:
調用 connect() 方法打開數據庫連接,該方法返回數據庫連接對象。
通過數據庫連接對象打開游標。
使用游標執行 SQL 語句(包括 DDL、DML、select 查詢語句等)。如果執行的是查詢語句,則處理查詢數據。
關閉游標。
關閉數據庫連接。
下圖顯示了使用 Python DB API 2.0 操作數據庫的基本流程。
關于Python數據庫API是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。